我有以下代码:
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;
它只分配和删除一个2D unsigned int数组。 这段代码可以正常使用当前的G ++,但是我的Borland Compiler在工作时遇到了第一个访问冲突
delete[] nErgebnisse[0]
话说:
0x32b6f4e3处的访问冲突:写入地址0xffffffff
这里有什么问题?
答案 0 :(得分:2)
在这里你要创建一个数组但是
nErgebnisse = new unsigned int*[nInitialVecSize];
for(unsigned int i = 0; i <= nInitialVecSize; ++i )
{
nErgebnisse[i] = new unsigned int[nMaxSektorMenge];
}
当i = nInitialVecSize
写入超出数组范围的时候,因为你的for循环中有<=
。请改用
for(unsigned int i = 0; i < nInitialVecSize; ++i )