gpt4 book ai didi

c++ - 删除时的二维数组访问冲突(Borland C++)

转载 作者:行者123 更新时间:2023-11-28 02:56:53 24 4
gpt4 key购买 nike

我有以下代码:

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;

它只是分配和删除一个二维无符号整型数组。这段代码在当前的 G++ 上运行良好,但在我的 Borland 编译器工作时,我第一次遇到访问冲突

delete[] nErgebnisse[0]

说:

access violation at 0x32b6f4e3: write of address 0xffffffff

这里有什么问题?

最佳答案

这里你创建了一个数组但是

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 )

关于c++ - 删除时的二维数组访问冲突(Borland C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21773731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com