char型の配列に、scanfを使用して数値(文字コード)を入れていき、文字として出力
するプログラムを作りました。
納得できない点があるので質問させてください。
要素数11のchar型の配列に、数値を代入し、最後のfor文で文字として出力しようとしたのですが、
これを実行すると、「stack around the variable 'ary' was corrupted」というエラーが表示されてしまいます。(環境はMicrosoft Visual C++ 2010 です。)
試しに、
を、
と、int型で宣言したところ、エラーなしで実行できました。
char型で配列を宣言したときの、上記のエラーは何を意味しているのでしょうか。
以下、作ったプログラム
配列に数値を入力して、文字に変換
Re: 配列に数値を入力して、文字に変換
おそらく、多くの環境でchar型のサイズよりint型のサイズの方が大きいので、
データを書き込むべきでない場所にデータを書き込んでしまい、データが破壊されたのではないでしょうか?
[search=google]stack around the variable was corrupted[/search]
データを書き込むべきでない場所にデータを書き込んでしまい、データが破壊されたのではないでしょうか?
[search=google]stack around the variable was corrupted[/search]
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 配列に数値を入力して、文字に変換
返信おそくなりました。
1バイトのchar型の配列にint型の整数を直接入力しているので、メモリがうまく使われていませんでした。
ありがとうございます。
1バイトのchar型の配列にint型の整数を直接入力しているので、メモリがうまく使われていませんでした。
ありがとうございます。