ベクトルへのポインターの配列があり、vector<int> *F[12];
いくつかのベクトルを初期化し、それらのアドレスを F に格納したいと考えています。
for(uint i = A; i <= B; ++i){
vector<uint> newvec(pow2(i), 0);
F[i] = &newvec;
}
しかし、後でそれらにアクセスしようとすると、それらがすべてゼロではないことがわかります。
for(uint i = A; i <= B; ++i){
for(uint j = 0; j <= pow2(i); ++j){
if((*F[i]).at(j) != 0){
cout << i << "/" << j << "/" << (*F[i]).at(j) << "|";
}
}
}
これは、宣言されたベクトルのスコープと関係があると思います。なぜメモリが解放されたのですか?malloc
そこからベクトルを使用して作成する必要がありますか?