我有一些遗留代码,它们将本机数组复制到托管数组中:
float* nativeValues = new float[NumberOfSamples];
array<double>^ managedValues = gcnew array<double>(NumberOfSamples);
pin_ptr<double> pinnedValues = &managedValues[0];
for (int i = 0; i < managedValues->Length; i++)
{
nativeValues[i] = (float) pinnedValues[i];
}
我无法重构它,Runtime::InteropServices::Marshal::Copy
因为原始数组是双精度的,而目标是浮点数。
我的问题是我不明白为什么 pin_ptr。我不认为这是必要的,但它是一段关键的代码,我想在删除它之前确定。
您认为删除它是否安全?