gpt4 book ai didi

指针运算期间的 C++ 总线错误

转载 作者:太空宇宙 更新时间:2023-11-03 10:26:21 24 4
gpt4 key购买 nike

我正在尝试学习 C++,尤其是。指针及其算术。我正在使用 XCode 编译和运行我的程序。

下面我有两组代码试图创建一个 3D 整数数组。第一个代码编译和运行没有错误,但第二个代码编译没有错误但在运行时生成 EXC_BAD_ACCESS。

当我尝试使用 g++ 从终端编译和运行时,第二个代码生成 Bus Error: 10

谁能告诉我为什么第二组代码在我看来非常相似但无法成功运行?

代码 1:编译 + 运行成功

int main(){
int i, j, k;
int*** dim = new int**[3];
for (i=0; i<3; i++) {
dim[i] = new int* [3];
for(j = 0; j < 3; j++) {
*(*(dim+i)+j) = new int[3];
}
}
return 0;
}

代码 2:编译成功但生成 EXC_BAD_ACCESS/Bus Error: 10 运行时

int main(){
int i, j, k;
int*** dim = new int**[3];
for (i=0; i<3; i++) {
dim[i] = new int* [3];
}
for (i=0; i<3; i++) {
for(j=0; j<3; i++)
*(*(dim+i)+j) = new int[3];
}
return 0;
}

错误截图: Error Screenshot

最佳答案

第 8 行递增 i 而不是 j:

for(j=0; j<3; i++)

关于指针运算期间的 C++ 总线错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33451769/

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