正在为循环内部声明向量
Declaring vectors inside for loop
我有一个指向向量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
并从中创建向量吗?
newvec。每次在循环中创建它时,都会指向它一个指针,然后它就会消失。您希望使用"new"运算符在堆中创建一个持续时间更长的向量实例。
newvec
超出范围。任何现有的引用或指向它的指针在该点上都是无效的。您需要在适当的范围内声明对象(在这种情况下,我不知道这对您来说是什么,但肯定在for
循环之外)。
相关文章:
- 在类中声明向量的大小
- 如何在方法主体中返回声明向量的引用?
- 在 c++ 中声明向量时出现意外错误
- 在 C++ 中声明向量后无法打印任何内容
- 在声明向量向量的矢量时会出现错误
- 在cpp中声明向量数组
- 声明向量时出现神秘的 malloc 内存分配错误
- 尝试在头文件上私下声明向量时出错
- 正在为循环内部声明向量
- 声明向量时出现分段错误(核心转储)
- 在作用域中声明向量
- 如何在 OpenCV 中声明向量
- 冗余命名空间声明向量
- 为什么我们不能声明向量< int、pair<int、int > >
- C++ 在头文件中声明向量
- 调用函数并声明 me 时声明向量
- 使用 Car() 对象声明向量会打印不相关的错误
- 无法在 xcode ios 项目中声明C++向量
- c++声明向量数组以获取类,但不能访问成员变量
- 如何转发声明向量<B*>*(不是向量<B>或向量<B*>)?