我试图将 C 风格的整数数组发送到 Objective-C 方法,但在方法中我只收到数组的第一个元素。这是一个例子:
int a[3];
a[0] = 111; a[1] = 222; a[2] = 333;
[self getMatrix:a];
然后
-(void)getMatrix:(int[3])matrix
{
return; -- breakpoint here
}
所以,当调试在断点处停止时,我有矩阵:
matrix int * 0xbfffddd4
*matrix int 111
其他元素在哪里?因此,2 维数组变成 1 维数组,3 维数组变成 2 维数组等。我做错了什么?
谢谢!
附言NSArray 工作正常,但我无法想象如何在不编写大量代码的情况下使用多维(3d、4d)NSArray。
-(void)getMatrix:(int[3])matrix
{
int a = matrix[0];
int b = matrix[1];
int c = matrix[2];
}
您会看到这些值是正确的。没有任何错误。调试器只显示 *matrix
这是第一个元素。这里的matrix
本身就是一个指向整数或int *
的指针。
我是一名优秀的程序员,十分优秀!