【初心者歓迎】C/C++室 Ver.35【環境依存OK】at TECH
【初心者歓迎】C/C++室 Ver.35【環境依存OK】 - 暇つぶし2ch448:デフォルトの名無しさん
07/03/12 17:02:59
push_backしていってvectorのサイズがでかくなったときにvector内部で再割り当てが起こってる。
なので&v[i-1]は途中から不正なポインタを指す。
なので本当は&v[i-1]が不変なのを期待しちゃダメ。

↓こうやって最初に100確保しておけば再割り当てが起こらないだろうから大丈夫。

int main()
{
int i;
std::vector<Test> v(100);
Test b;

b.p = NULL;
v[0] = b;

for (i=1;i<100;i++) {
b.x = i;
b.p = &v[i-1];
v[i] = b;
}

Test *c;
c = &v[v.size()-1];

int count = 0;
while ( c->p != NULL ) {
printf("%d: %d\n",count++,c->x);
c = c->p;
}
}


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch