如果你這樣做是爲用Objective-C的應用程序,我建議使用NSArray
。 NSArray
是用於不可變數組的Objective-C類,並不要求您手動分配內存。唯一的關鍵是你必須將你的整數封裝在NSNumber
對象中。一個例子是:
NSArray * getNums (int num) {
NSArray * result = [NSArray arrayWithObjects:[NSNumber numberWithInt:num-1], [NSNumber numberWithInt:num], [NSNumber numberWithInt:num+1], nil];
return result;
}
...
NSArray * myList = getNums(10);
NSLog(@"First: %d", [[myList objectAtIndex:0] intValue]);
NSLog(@"Second: %d", [[myList objectAtIndex:1] intValue]);
NSLog(@"Third: %d", [[myList objectAtIndex:2] intValue]);
您也可以做到這一點:
NSArray * getNums (int num) {
NSMutableArray * array = [NSMutableArray array];
[array addObject:[NSNumber numberWithInt:num-1]];
[array addObject:[NSNumber numberWithInt:num]];
[array addObject:[NSNumber numberWithInt:num+1]];
return array;
}
...
NSArray * myList = getNums(10);
for (int i = 0; i < [myList count]; i++) {
NSLog(@"myList[%d] = %d", i, [myList objectAtIndex:i]);
}
唯一的區別是,NSMutableArray裏可以讓你在事後添加/刪除元素。
我在init中添加了我的數組...請參閱上面,謝謝 –
好吧,然後按照我的答案,你應該只是:) –
不知道爲什麼會清除警告?使用calloc聲明一個數組而不僅僅是聲明一個帶有「[]」的數組都會產生一個指針。在這兩種情況下,函數返回的答案都是相同的。我只是得到另一個警告? 對於釋放calloc或malloc的,這取決於方法調用,我必須使用「保留」或陣列丟失。所以我不明白區別? –