1

変数にアクセスして出力しようとしています。ただし、Vector subscript out of rangeエラーが発生します。

私がやっている

cout << myStruct->myVector[0].GetCoordinate(0) << endl;

ここで、 myStruct点のベクトルを含む構造体をmyVector指します。だから私はその最初の座標を印刷しようとしています。


デバッグするには:

cout << typeid(myStruct->myVector[0].GetCoordinate(0)).name() << endl;

私にくれます

float

cout << sizeof(myStruct->myVector[0].GetCoordinate(0)) << endl;

私にくれます

4

ただし、その値を直接印刷すると

cout << myStruct->myVector[0].GetCoordinate(0) << endl;

エラーメッセージ:

ここに画像の説明を入力

4

2 に答える 2

4

ベクトルが空です。0と の間にない.size()(後者を除く) インデックスは範囲外です。と の間0にインデックスがないため0、すべてのインデックスが範囲外です。

最初にベクトルを入力する必要があります。たとえば、.resizeまたはを使用します.push_back

于 2013-11-07T08:11:00.490 に答える
1

問題の原因:

tlen = __byte_encode_array(buf, offset + pos, maxlen - pos, &this->data[0], this->size);

ベクター内の存在しない要素にアクセスすることはできません。

于 2013-11-07T11:09:16.360 に答える