初期化&サイズ指定について名前:たりゃー。21:09初めての投稿になります。至らない点があればご指摘のほどを。外部テキストファイルの文字列を多次元配列に読み込ませるために以下のようなコードを書きました。i++){FileRead_scanf(FileHandle,"%s",String[i]);}FileRead_close(FileHandle);※外部テキストファイルのtest.txtは30文字×6行のものです。このように外部テキストファイルを読み込んだのですが、ここで1つ疑問がわきました。それは、配列Stringの1つ目の[]の要素数は2であるのに、なぜ6行のテキストファイルを読み込めたのか・です。(ちなみにforのなかの100という数字は、大きめに設定した適当な値です。)この状態で試しにStringの中身をDrawStringで書き出してみたところ、しっかりと5行、テキストファイルの中身と同じように映し出されました。これは動的に配列を宣言しているということなのですか?(でもnewやmalloc等は使っていないし・・・。)以上が質問になります。22:18答えは否です。今回はたまたまうまく読み込めただけで、いつでも読み込めるとは限りません。C(C++)では、配列の範囲の外にアクセスしてしまってもエラーは出しません。その場合の動作は「未定義」となります。「未定義」とは何が起こるかわからないという事です。今回のようにたまたま何事もなかったかのようにふるまうこともあれば、プログラムがクラッシュすることもあります。ちなみに・FileRead_eofを使うことでファイルを最後まで読み込んだか判定できます。・例えば一行に256文字以上の文字が書かれていた時もこのままだと未定義の動作になってしまいます。これに対処するためには%sを%255sとするかFileRead_getsを使うかどちらかにします。これで書き直すとこんな感じになります。22:50返信が遅れてしまいました。定義されていないところ(メモリ?)に記録されていくのですね。これからも精進しようと思います。(記事メンテ時に使用)クッキ。