我還沒有找到任何問題的答案。 我傳遞一個整數數組到一個函數。現在我想遍歷數組。但是,因爲事情在C,C++中通過使用arrayname.length,它給出了數組中的元素數目。有什麼方法可以找到它? [NSArrayObject長度]適用於NSArray類型,但我希望它爲int []。 甚至沒有[XYZ計數]的作品....所以想要另一種方式來找到。目標C中陣列的長度
回答
Objective-C沒有任何特定於int的數組。因爲如果你使用C.
sz = (sizeof foo)/(sizeof foo[0]);
咦?在C中,不存在「arrayname.length」之類的東西。原始類型的數組(例如int[]
)在運行時沒有與其關聯的任何長度信息。
有作爲在Objective-C下的int數組array.length
沒有這樣的事情是完全相同爲C.一個int數組,如果它是靜態像int foo[5]
定義,那麼你可以做sizeof(foo)
得到大小 - 但只有在相同函數foo
(在其他函數中,它只是一個int指針,而不是數組本身)中定義。否則,沒有固有的方式來獲取這些信息。您需要傳遞大小或使用標記值(例如C字符串中的終止'\ 0',它們只是char數組)。
數組基本上是一個內存地址,一個已經分配給數組的內存塊的開頭你可能會使用相同的技術。要實際使用它,您需要在創建完成後以某種方式記住長度。您可以將長度傳遞給每個函數,也可以將數組和長度包裝到另一個結構中,並傳遞該結構。
看起來像NSMutableArray
的工作。有什麼原因需要使用C數組?如果不是,請考慮NSMutableArray
。
我可能是錯的(所以請糾正我,如果我),但有沒有簡單的方法在C獲得int []在運行時的大小。你將不得不做一些事情,比如創建一個結構來保存你的數組和一個int,你可以自己跟蹤數組中的多少項。你甚至可以讓你的結構體保存你的數組和塊。那麼你可以設計塊來爲你做跟蹤。
但這更多的是一個C問題,而不是一個客觀的問題。
如果您想要一個整數數組,請將它們包裝在NSNumber對象中並將它們放入一個NSArray中。
你所要求做的,是不是真的可以很好地支持用C雖然有對MAC的方法,你可以嘗試(malloc_size):
有作爲arrayname.length
沒有這樣的事情在C.這就是爲什麼如此多的函數需要參數對,數組中的一個參數和數組長度的一個參數。最明顯的例子是主要功能。你可以找到這個功能是在一個名爲main.m
文件中的所有你的iPhone的項目,這將是這個樣子:
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
通知的argv
agument是怎樣一個v埃克特,或字符串數組,和argc
參數是一個c數量在這個數組中的數量。
對於所有基元類型,您都必須執行相同的操作,這是Objective-C的一部分。如果你留在目標使用NSArray或子類的部分工作正常,但要求所有元素都是對象。
當數組中的元素總數未知時,可以使用此代碼。
main()
{
int a[]={1,2,3,4,5,6,7}
int i;
clrscr();
for (i=0;i<=((sizeof(a)/sizeof(int));i++)
{
puts(a[i]);
}
getch();
}
一行文字前4個空格告訴網站使用代碼格式。要在多行代碼之前快速放置4個空格,請選擇所有行,然後單擊** {} **按鈕。我爲你修好了,使它可讀。 –
[數組數]這似乎是工作最容易在Objective-C
- 1. c打印陣列長度
- 2. 目標C - 陣列
- 3. 長度陣列陣列
- 4. C Char陣列Userinput檢查長度
- 5. 獲取維長度,C#陣列
- 6. 目標C中的2D陣列
- 7. 目標C - 陣列中的一個arbritary
- 8. 在目標c中的UIImageView陣列
- 9. 目標C填充陣列
- 10. 釋放陣列目標c
- 11. 2D陣列的長度[i]
- 12. 使用長度()的陣列
- 13. 宣佈陣列的長度
- 14. 查找陣列的長度
- 15. 術語爲陣列,其中長度是已知的C/C++
- 16. C++中超長陣列
- 17. 邪惡的DICOM目標陣列不夠長檢查destindex和長度以及陣列的下限
- 18. 獲得NSArray長度/計數 - 目標C
- 19. 目標-C中的矩陣
- 20. 在javascript中空陣列的長度
- 21. Firebase中陣列的顯示長度
- 22. 無法獲得陣列中的長度
- 23. 確定矩陣中的列長度
- 24. 獲取k-1的長度ķ陣列的長度子集陣列
- 25. 一維陣列形狀(長度,)與(長度,1)與(長度)
- 26. CUDA推力陣列長度
- 27. 陣列最大長度
- 28. 固定長度BitArrays陣列
- 29. 查找陣列長度incakephp
- 30. 陣列長度問題
我試過這個......我看到一個二維數組,但我的數組是單維...就像只是int foo []所以我做sizeof(foo)/ sizeof(foo [0])它返回4/4即1 ..我已經嘗試過......但沒有運氣..有沒有其他方式? 謝謝 – Darpan
@Darpan:只有當你聲明int foo [5]而不是int foo []時,它纔有效。 – mouviciel
同意w/mouviciel,這不會得到你想要的。 – pxl