掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
変数を変えても出力結果が変わらない理由.. (ID:67321)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
とりあえず double A[81][21]; などの配列を全て double A[500][500]; 位にして計算してみては? >A,B,Cを変えればDも変わるはずのところ、BとCの場合はいいのですが >Aの時だけ、値を変えてもDが全く変わりません。 と >配列を宣言する順番によって計算結果が変わることがわかりました からバッファオーバーフローという回答になっているのだと思います。 例えば適当に新規でプロジェクトを作って { int A[2]; int B[2]; int C[2]; for(int i=0;i<=2;i++) { A[i] =2; B[i] =5; C[i] =10; } } <-ココでブレーク ブレークして、A,B,Cの配列の中身を確認してみてください。 A[0]の値が書き換わっていませんか? #もしかしたら変わるのはA[0]じゃないかも・・ この場合上記でA[i] =100;にしたとしても A[0]+B[0]+C[0] のような計算では結果が同じになると思います。 また定義の順番を変えると B[0]の値がおかしくなるのが確認できると思います。 #上記のプログラムは実行続けるとアサートます。 #あくまで確認ということで・・
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.