C++ 删除时发生2D数组访问冲突(Borland C+;+;)
我有以下代码:C++ 删除时发生2D数组访问冲突(Borland C+;+;),c++,g++,access-violation,borland-c++,C++,G++,Access Violation,Borland C++,我有以下代码: nErgebnisse = new unsigned int*[nInitialVecSize]; for(unsigned int i = 0; i <= nInitialVecSize; ++i ) { nErgebnisse[i] = new unsigned int[nMaxSektorMenge]; } //do some stuff for(unsigned int i = 0; i <= nInitialVecSize; ++i ) { d
nErgebnisse = new unsigned int*[nInitialVecSize];
for(unsigned int i = 0; i <= nInitialVecSize; ++i )
{
nErgebnisse[i] = new unsigned int[nMaxSektorMenge];
}
//do some stuff
for(unsigned int i = 0; i <= nInitialVecSize; ++i )
{
delete[] nErgebnisse[i];
}
delete[] nErgebnisse;
说:
0x32b6f4e3处的访问冲突:写入地址0xFFFFFF
这里有什么问题?这里您正在创建一个数组,但是
nErgebnisse = new unsigned int*[nInitialVecSize];
for(unsigned int i = 0; i <= nInitialVecSize; ++i )
{
nErgebnisse[i] = new unsigned int[nMaxSektorMenge];
}
我认为应该是
I
而不是I@skylla-是的,因为您的代码中有未定义的行为。您是对的,非常感谢!这就解决了问题:)
nErgebnisse = new unsigned int*[nInitialVecSize];
for(unsigned int i = 0; i <= nInitialVecSize; ++i )
{
nErgebnisse[i] = new unsigned int[nMaxSektorMenge];
}
for(unsigned int i = 0; i < nInitialVecSize; ++i )