Доброе утро, день или ночь,
Предисловие: Приведенный ниже код ничего не дает.Это просто для пояснения.
Что-то не так с выделением и использованием массива «безопасный режим» внутри небезопасного кода?Например, я должен написать свой код как
public static unsafe uint[] Test (uint[] firstParam, uint[] secondParam)
{
fixed (uint * first = firstParam, second = secondParam)
{
uint[] Result = new uint[firstParam.Length + secondParam.Length];
for (int IndTmp = 0; IndTmp < firstParam.Length; Result[IndTmp] = *(first + IndTmp++));
for (int IndTmp = 0; IndTmp < secondParam.Length; Result[IndTmp + firstParam.Length] = *(second + IndTmp++);
return Result;
}
}
или вместо этого я должен написать отдельный, небезопасный метод, принимающий только указатели и длины в качестве параметров, и использую его в основной функции?Можно ли как-то заменить выделение на
uint * Result = stackalloc uint[firstParam.Length + secondParam.Length]
, чтобы я мог использовать Result
в качестве указателя и при этом иметь возможность возвращать Result
в качестве uint[]
?
Большое спасибо.