これはコーディングサイトの1つです。配列メモリ割り当て
"?"出力が4になるような整数で置き換えます。
int main()
{
int arr[7];
int b,c,d,a;
a=4;
printf("%d",arr[?]);
return 0;
}
私はこれを理解しようとしましたが、その答えは-4であることがわかりました。 もう1つの変数(コードの4行目のint b、c、d、e、aなど)を宣言すると、答えは-5になりました。
コンパイラがどのように動作しているか、メモリ割り当ての理由(負のインデックス)を説明してください。
(配列+ 4つの変数のサイズ)であると予想されているだろう - あなたは目的の結果を与える値を見つけることができるかもしれませんが、コンパイラとアーキテクチャ固有のものであり、未定義の振る舞いに依存します。 –
'arr'を初期化していないので、決して知りません! –
誰でもあなたにこの質問をしましたが、Cプログラミングは分かりません。 – Lundin