を満たすためには、私のコーディングです:私はベクトル<int *>に要素を追加するとき、私はここにいくつかの問題
std::vector<int *>a;
for(i=0;i<3;i++)
{
int j=i+1;
int *p=&j;
a.push_back(p);
}
for(auto &c:a)
{
std::cout<<*c<<std::endl;
}
私は出力が1,2,3ことにしたいが、出力が3,3,3であります私は同じポインターをaに追加したようですが、循環に別のポインターを追加したいのですが、私は何をすればいいのですか?
第1回目のforループのボディに 'j'がスコープされています。ループが残されるとすぐにアドレスは無効になります。 –
ループが終了するとすぐにpが範囲外になると思うので、UBのように見えます。 – Carcigenicate
ポインタを使用しないでください。ちょうど整数を使用してください。 –