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

rap*_*ock 1 c++ arrays pointers g++ xcode7

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

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

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

任何人都可以告诉我为什么第二组代码没有成功运行虽然对我来说它看起来非常相似?

代码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;
}
Run Code Online (Sandbox Code Playgroud)

代码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;
}
Run Code Online (Sandbox Code Playgroud)

错误的屏幕截图: 错误截图

小智 5

第8行正在递增i而不是j:

for(j=0; j<3; i++)
Run Code Online (Sandbox Code Playgroud)