我想把一个长数组传递给一个目标c函数。如果可能的话,我希望数组作为指针传递,这样就不会进行复制。我写了这段代码:
+ (int) getIndexOfLongLongValue: (long long) value inArray: (long long []) array size: (int) count
{
for (int i =0; i < count; i++)
{
if (array[i] == value)
return i + 1;
}
return 0;
}
我经过的地方
long long varname[count];
作为第二个论点。我想知道我是否可以将这个数组作为指针传递,或者这个方法是否可以。我不需要指向长long的指针,而是指向数组的指针。
最佳答案
它是作为指针传入的(尽管语言迂腐);没有任何东西被复制。type[]
在很大程度上与type*
相同。
要确认这一点,请查看方法中的sizeof(array)
。你会看到它和sizeof(void*)
一样大。
如果您真的需要指向数组的指针,即指向长long的指针,则需要使用类似于type**
的方法;但要这样做的唯一原因是,如果您想从方法中修改底层数组指针,这几乎是不可能的。
关于objective-c - 指向Objective-C函数调用中的数组的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11484711/