ここから本文です

DirectX9のプログラミングをC++で行っており、

アバター

ID非公開さん

2018/8/1420:13:13

DirectX9のプログラミングをC++で行っており、

std::vectorのpush_backを行うと以下の様なエラーが
発生して強制終了されるのですが原因と解決を教えて頂きたいです。

Debug Assertion Failed!
Progrm: C:\game\Debug\game.exe
File: C:\program files(x86)\microsoft visual studio
14.0\vc\include\vector
Line: 102

Expression: vector iterator not incrementable

For information on how your program can cause an assertion
failure,see the Visual C++ documentation on asserts.

(Press Retry to debug the application)

以上です。よろしくお願いいたします。

閲覧数:
34
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tre********さん

2018/8/1420:54:07

const auto _Mycont = static_cast<const _Myvec *>(this->_Getcont());
if (_Mycont == 0
|| _Ptr == nullptr_t{}
|| _Mycont->_Mylast <= _Ptr)
{ // report error
_DEBUG_ERROR("vector iterator not incrementable");
_SCL_SECURE_OUT_OF_RANGE;
}


・要素数が0か、
・ポインタがnullか、
・最終要素に到達している

時にエラーになるみたい。

普通にpush_backを使用するだけでは発生しないような気がします。

おそらくvectorのイテレーターを用いて何か処理しようとした時に上記のエラー条件のどれかにひっかかっているのだと思います。

※あるいは、ベクタのオブジェクトをメモリ破壊しているとか…

------------------------------------------------------------
以下のプログラムだと★の所で同様のエラーが発生します。

#include <iostream>
#include <vector>
using namespace std;

int main()
{
vector<int> v;//空のベクタ
auto it = v.begin();
it++;//★ここでエラー

return 0;
}

アバター

質問した人からのコメント

2018/8/15 00:03:03

無事解決することが出来ました!
とても参考になりましたありがとうございます!

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる