在动态分配矩阵上的访问违规读数位置
Access violation reading location on dynamic allocated matrix
我有动态分配矩阵的问题。我得到此错误:" tema 1.exe中的0x009087Ac丢弃了异常:0xc0000005:访问违规读取位置0xfdfdfdfd。"我要做的是从矩阵中删除一行:
void deleteLine(int **matrix, int &nrLin, int nrCol, int lineDel)
{
for (int indexLin = lineDel; indexLin < nrLin; indexLin++)
for (int indexCol = 0; indexCol < nrCol; indexCol++)
matrix[indexLin][indexCol] = matrix[indexLin + 1][indexCol];
nrLin--;
}
int main()
{
int **matrix, nrLines, nrColumns, lineDel;
ifstream file("datePB4.txt");
file >> nrLines>> nrColumns;
matrix= new int *[nrLines];
for (int index = 0; index < nrLines; index++)
matrix[index] = new int[nrColumns];
for (int indexLin = 0; indexLin < nrLines; indexLin++)
for (int indexCol = 0; indexCol < nrColumns; indexCol++)
file >> matrix[indexLin][indexCol];
cin >> lineDel;
deleteLine(matrix, nrLines, nrColumns, lineDel);
for (int index = 0; index < nrLines; index++)
delete matrix[index];
delete matrix;
file.close();
return 0;
}
i在第五行中获取错误(" matrix [indexlin] [indexCol] = matrix [indexlin 1] [indexCol]; "(。
任何帮助将不胜感激,谢谢!
您正在阅读数组的出站:
matrix[indexLin][indexCol] = matrix[indexLin + 1][indexCol];
因此,最后一个迭代indexlin等于 nrLin -1
,这还可以,但是在 matrix[indexLin + 1][indexCol];
中,您读取matrix[indexLin(-1 + 1)]
,这不是导致程序carsh的数组的弹性。
您可以将其修改为:
for (int indexLin = lineDel; indexLin < nrLin - 1; indexLin++) // here solves the problem in order not to read matrix[indexLen]
for (int indexCol = 0; indexCol < nrCol; indexCol++)
matrix[indexLin][indexCol] = matrix[indexLin + 1][indexCol];
相关文章:
- 写入位置0x0000000C时发生访问冲突
- 使用迭代器时如何访问对象在向量中的位置?
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- Cuda:访问违规写入位置0x0000000000000000
- 0xC0000005:访问冲突读取位置 0x00000000. 重载 == 运算符的问题
- 映射唯一值和重复值的有效方法.可以访问键或值的位置
- 访问特定阵列位置/索引时出现分段错误
- 创建一个类来访问和指定向量类型,并构建一个获取位置并为其分配区域的类
- (此函数用于计算 SMA).在 FA.exe 中0x00509159引发异常: 0xC0000005:访问冲突读取位置0
- 0xC0000005:读取位置0xCDCDCDC1时发生访问冲突
- 0xC0000005:读取位置0xCDCDCDCD时发生访问冲突
- 读取类的析构函数中的位置时发生访问冲突
- C++ std::map 如何按索引位置访问密钥
- 为什么要在内存位置访问违规写入
- 在构造函数以外的任何其他位置访问相机时,我的相机指针返回 null
- 在 65536 位置访问迭代器的指针运算符会导致段错误
- 0xC0000005:在位置访问违规写作
- 当从不同位置访问类方法时,类成员的位置会发生变化
- 从STL列表的任何位置访问头
- 未处理的异常.在该位置访问违规.在c++中运行kinect应用程序时