-4

I make an array size of n;

It is not created.

UPDATED

int p[n];

for (int i = 1; i <= n; i++) {
   p[i] = 12;
}
NSLog(@"%i", p[5]);

RESULT OF EMPTY ARRAY

But when I use NSLog of eg. 5th item - I can see it is 12, HOW ?

4

1 回答 1

1

p,就调试器而言,是您的数组的名称,它不知道它有多长。因此,当您打印时,p它会告诉您定义 ( (int []) p = {}),而不是内容。

您也可以直接在调试控制台中执行此操作:

Printing description of p:
(int []) p = {}
(lldb) p p
(int []) $0 = {}
(lldb) p p[1]
(int) $1 = 12
(lldb) p p[20]
(int) $2 = 12
(lldb) p p[21]
(int) $3 = 992998680

如果您将数组定义为int p[20];,那么调试器将尊重长度并为您打印数组的全部内容。

于 2013-07-04T14:45:37.023 回答