将指针数组从c++转换为c#

本文关键字:转换 c++ 指针 数组 | 更新日期: 2023-09-27 18:14:41

我是c++程序员,我被困在一个迁移项目中,我需要将下面的c++代码转换为c#。同样需要帮助。

unsigned short** varData = new unsigned short*[ndata]; //Say ndata is 10
for(int i=0; i<ndata; i++) varData[i] = new ushort[nwp]; 

将指针数组从c++转换为c#

这给了你一个16位无符号整数的2D数组,这可能是你在c++中尝试用指针对指针来表达的。

  int nData = 10;
  int nwp = 3;
  var varData = new UInt16[ nData, nwp ]; //varData is of type UInt16[,]

http://msdn.microsoft.com/en-us/library/2yd9wwz4 (v = vs.71) . aspx

如果我理解正确的话,您使用unsigned short**来存储ushort的二维数组。在c#中,你可以将它声明为

ushort[,] array = new ushort[m, n];

其中m和n为维数

使用锯齿数组,而不是2D数组;如果您需要与c++相同的结果。详见http://msdn.microsoft.com/en-us/library/2s05feca.aspx