写二维向量时的访问冲突
Access violation when writing two dimensional vectors
我的程序继续崩溃时,x = 2
和y = 6
cellChargeTime[x][y].push_back(0);
任何想法如何解决这个问题或什么可能导致这个崩溃。
vector<int> **cellChargeTime;
cellChargeTime = new vector<int>*[xMax]; //xMax = 40
for (int x=0; x<xMax; x++)
cellChargeTime[x] = new vector<int> [yMax]; //yMax = 40
for (int x=0; x<xMax; x++){
for (int y=0; y<yMax; y++){
for (int i=0; i< numRuns; i++){ //numRuns = 1
cellChargeTime[x][y].push_back(0); // Crashes at x = 2; y = 6
}
}
}
所示的代码没有问题,它工作得很好(如果您在使用cellChargeTime
时有足够的delete[]
语句)。
但是,我建议使用一种不同的内存管理方法:
vector<vector<int> > cellChargeTime;
cellChargeTime.resize(xMax);
for (int x=0; x<xMax; x++)
cellChargeTime[x].resize(yMax);
填充向量的循环完全没有改变:
for (int x=0; x<xMax; x++){
for (int y=0; y<yMax; y++){
for (int i=0; i< numRuns; i++){ //numRuns = 1
cellChargeTime[x][y].push_back(0);
}
}
}
相关文章:
- 尝试通过多个向量访问变量时,向量下标超出范围
- 写入位置0x0000000C时发生访问冲突
- 引发异常:读取访问冲突**dynamicArray**为0x1118235.发生
- 链表中写入访问冲突的未知原因
- C++中的openCV Mat访问冲突
- C++尝试深度复制唯一指针时出现内存访问冲突
- C++ 中动态二维数组的访问冲突
- 如何从静态向量访问类元素?
- 从嵌套循环中的 std::list 中删除将返回访问冲突
- 在类 A 中创建类型为 B 类的向量 - 访问数据 [C++] [成员在两个类中都是私有的]
- 写入访问冲突异常
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- C++:向量元素赋值导致访问冲突
- 使用向量的函数崩溃,调试器说访问冲突读取位置
- 读取访问冲突. _Mycont 在 C++ 中将 udp 数据放入向量时出现 nullptr 错误
- 多次随机向量后的读取访问冲突
- 对象向量中的内存访问冲突
- 访问冲突读取位置c++字符向量
- 写二维向量时的访问冲突