我面临一个问题,我肯定做错了什么。我需要调用一个函数,该函数返回一个指向 int 数组的指针,但是当它返回后,数组中的值是错误的并且某些值丢失了。
int* patternForFirstDigit(int digit) {
int *pattern;
pattern = (int [6]){1,1,1,1,1,1};
switch (digit) {
case 0:
pattern = (int [6]){1,1,1,1,1,1};
break;
case 1:
pattern = (int [6]){1,1,2,1,2,2};
break;
default:
pattern = (int [6]){0,0,0,0,0,0};
break;
}
for (int i = 0; i < 6; i++) {
printf("%i\n", pattern[i]);
}
return pattern;
}
在数字 = 1 的情况下,这是打印的内容
1, 1, 2, 1, 2, 2
但回国后
int *pattern = patternForFirstDigit(0);
for (int i = 0; i < 6; i++) {
printf("%i\n", pattern[i]);
}
这是打印的内容
1, -1405451528, -1405449120, 366001
你知道出了什么问题吗?
多谢你们
PS:我使用的是 Xcode 4.6,我的项目使用的是 ARC,但我很确定这不是我的问题的原因。