如何将array<int^>^
转换为int*
?
答案 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;