如有一个c++的接口函数:void CppFunc(float* data,int len);
C#调用传值采用unsafe -fixed方式,代码如下:
public unsafe void CSharpFunc(float[] data)
{
fixed(float* pData = data)
{
//这里直接钉住内存,获取指针,主要是因为调用方便。
CppFunc(pData,len);
}
}
类似如上的代码,前几日出现了AccessViolationexception异常,让我怀疑人生了。
这种方式调用C++会出异常吗?为什么?unsafe有什么大坑吗?谢谢回答
CppFunc(&pData[0],len);