私は問題に直面しており、確かに何か間違ったことをしています。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を使用していますが、それが私の問題の理由ではないと確信しています.