위해 나는 vector<int> *F[12];
를 벡터에 대한 포인터의 배열을 가지고 있고 어떤 벡터를 초기화하고 나중에에 액세스하려고 할 때선언 벡터 내부 루프
for(uint i = A; i <= B; ++i){
vector<uint> newvec(pow2(i), 0);
F[i] = &newvec;
}
는하지만, 내가 찾을 F. 자신의 주소를 저장하고자 그들은 모두 0이 아닙니다 :
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
을 사용하고 그로부터 벡터를 만들어야합니까?
http://stackoverflow.com/questions/6441218/can-a-local-variables-memory-be-accessed-outside-its-scope – chris