2017-09-26 26 views
-1

セグメント化エラーが発生しますが、ポインタは使用しません。私が文字列ストリームに挿入すると起こっています。stringstreamに挿入するとセグメント化エラーが発生する

std::string Relations::toString() 
{ 
    std::stringstream restring; 
    restring << ID << "("; 

    restring << reList[0]; // segmentation fault 

    for (int c = 1; c < reList.size(); c++) 
    { 
     restring << "," << reList[c]; 
    } 

    restring << ")"; 
    return restring.str(); 
} 
+0

まずは、ベクトルが空の場合や、要素が1つしかない場合は、明らかにクラッシュする可能性があります。 –

+0

'reList'が' reList [1];で2番目の項目にアクセスする前に 'reList'のサイズが十分であるかどうかを確認していないようです。 C/C++のアイテムインデックスも通常0から始まります。 – VTT

+0

segfaultにつながる呼び出しを表示してください。 –

答えて

0

reList[0]にアクセスする前に、それが存在することを確認する必要があります。

0

私は自分自身の疑問に答えて、これは愚かな質問であることを認識させました。私はこのクラスを別のクラスで間違って使用していて、私のベクトルには何も入っていませんでした。したがって、私は空のベクトルにアクセスしようとしていました。

関連する問題