std::vectorがメモリ違反エラーを起こす

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
珈琲

std::vectorがメモリ違反エラーを起こす

#1

投稿記事 by 珈琲 » 12年前

画像
for文の脱出条件を無視してスコープ内に入ってきてvectorがメモリ違反を起こすのですが、
なぜスコープ内に入ってくるのかわかりません。

画像は、iが1、PendingList.size()が1の時にのスコープ内に入ったこと(黄色い矢印)を示してます。
for(size_t i=0;i < PendingList.size();i++){}

このstd::vectorは毎フレーム.clearしては.pusu_backして使いまわしてるのですが、それが原因で、vector::size()が間違った値を返しているのでしょうか?

珈琲

Re: std::vectorがメモリ違反エラーを起こす

#2

投稿記事 by 珈琲 » 12年前

追記ですが、この画像の次のステップインでエラーを起こします。

画像

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: std::vectorがメモリ違反エラーを起こす

#3

投稿記事 by みけCAT » 12年前

スコープ内に入ってくる、の意味が私にはわかりませんが、
これって、PendingList.size()>0の時に無限ループになって配列範囲外アクセスしませんか?

コード:

int t=0;
t++;
の存在意義も不明ですし、マルチスレッドのコードですか?
珈琲 さんが書きました:Expression: vector subscript out of range
はい、思いっきり範囲外アクセスしてますね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

珈琲

Re: std::vectorがメモリ違反エラーを起こす

#4

投稿記事 by 珈琲 » 12年前

あ、int t=0はブレークポイントとして指定したかったので意味のないコードを書きました。

珈琲

Re: std::vectorがメモリ違反エラーを起こす

#5

投稿記事 by 珈琲 » 12年前

コード:

for(size_t i = 0 ;0 < PendingList.size(); i++)
ああああああああなんじゃこりゃあああ









ありがとうございました・・・

閉鎖

“C言語何でも質問掲示板” へ戻る