将数组<int ^> ^转换为int * </int ^>

时间:2010-08-25 10:31:51

标签: arrays c++-cli unmanaged managed

如何将array<int^>^转换为int*

3 个答案:

答案 0 :(得分:5)

你不能,至少不是简单的方式。

如果您的意思是array<int>^到int *,您可以执行以下操作:

array<int>^ arr;
cli::pin_ptr<int> pArrayElement = &arr[0];

然后在pin_ptr上使用经典指针算法。

答案 1 :(得分:0)

我认为很难直接将array<int^>^转换为int*,因为它是对int的引用数组,而不是int数组。没有关于整数本身的内存布局的承诺,这是为了将它们转换为普通的旧C / C ++数组所必需的。

我认为最简单的方法是制作数组的副本,将其传递给f(int* input)然后如果被f修改则可能会复制数据。

答案 2 :(得分:-1)

数组的名称是数组中第一个元素的地址。

int array[] = {1, 2, 3, 4, 5};
int* p = array;