SewiGの日記
2007-10-16 [火] [長年日記]
■ [Other] 実装依存を常識といわれても
次のコードの問題点を指摘しなさい、みたいな問題があった。
char str[5] = "abcde"; printf("%s\n", str);
で、京都の専門学校生が「コンパイルエラーになるよね」って言っていたのが気になりました。まず、C言語の仕様上エラーにはならないし、この問題の製作者の意図からしても文字列の最後にNULが含まれないことを答えてほしいんだろうと思うのですが。私は彼にコンパイルが通らない理由を聞いたら「Visual C++ではエラーになる」と。コンパイラ実装上の問題ですな。これから彼はいろいろ勉強することになるだろうな。
サイズを指定した配列の初期化 http://www.st.rim.or.jp/~phinloda/cqa/cqa2.html