【发布时间】:2018-04-30 15:54:31
【问题描述】:
我正在尝试理解这段代码。令我困惑的第一件事是,在第二行代码中,我相信他们正在创建一个指针数组,并且计划是这些指针将指向数组。
我知道计算机不在乎,但对我来说,让指针数组保持水平是最合乎逻辑的,然后每个数组都可以从该水平线上的点下拉。
那么,“dynamicArray = new int *[COLUMNS];”是否合理?代替?
int **dynamicArray = 0;
//为行的元素分配的内存。
dynamicArray = new int *[ROWS] ;
//为每列的元素分配内存。
for( int i = 0 ; i < ROWS ; i++ )
dynamicArray[i] = new int[COLUMNS];
//释放分配的内存
for( int i = 0 ; i < ROWS ; i++ )
delete [] dynamicArray[i] ;
delete [] dynamicArray ;
编辑:我对此进行了更多思考,而我经常被绊倒的事情是我以错误的方式思考行和列。
dynamicArray = new int *[ROWS];
我理解这是一个指针数组,每个指针都指向一列。每列中的元素数等于行数(对于我们的二维数组中的每一行,列都有一个垂直元素)。
我理解的对吗?
当我需要使用嵌套的 for 循环来初始化二维数组时,我也经常被绊倒。
【问题讨论】: