gpt4 book ai didi

c++ - 运行时检查失败 #2 - 变量 'ap' 周围的堆栈已损坏

转载 作者:行者123 更新时间:2023-11-30 04:09:22 25 4
gpt4 key购买 nike

我在 Visual C++ 2010 Express 中运行以下一小段代码时遇到了上述问题。

当我使用 CodeBlocks 时,由于行 (A),内部 for 循环无法完全执行。

不知道为什么。感谢您的帮助!

int main()
{
int* ap[10];
for(int j=0;j<10;j++){
*(ap+j) = new int[10];
for(int i=0;i<10;i++){
*((ap+j)+i) = *(ap+j)+i;//(A)
**((ap+j)+i) = j * 10 + i;
cout<<setw(6)<<**((ap+j)+i);
}
cout<<endl;
}
return 0;
}

最佳答案

这一行

*((ap+j)+i) = *(ap+j)+i;//(A)

可以重写为

ap[j+i] = ap[j]+i;//(A)

你可以清楚地看到当 j+i > 10 时,这可以写越界。

您的意思可能是 ap[j][i] 或等效的 *(*(ap+j)+i)

关于c++ - 运行时检查失败 #2 - 变量 'ap' 周围的堆栈已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21257744/

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