如何解决为什么在c ++中声明动态2d数组时使用指针指向指针?
有人能解释为什么在C ++中声明动态2D数组时为什么要使用指针(**)吗?我不明白为什么要为此使用循环。
using namespace std;
int main(){
int **matrixPtr;//2d array declaretion
cout << "enter no of rows: ";
int row;//defining row
cin >> row;//initializing value of row from user
cout << "enter no of columns : ";
int col;//defining column
cin >> col;//initializing value of column from users
matrixPtr = new int *[row];//allocating 2d array dynamically
for(int i=0;i<row;i++){
matrixPtr[i] = new int[col];
}
}
解决方法
大约2D矩阵只是1D矩阵,其元素是基本元素的1D矩阵,因此是数组的数组。对吧?
然后,如果您要动态分配它,则可以:
- 元素的类型,例如
int
- 用于存储动态元素数组的类型,其后为
int *
(指向int的指针);多少,例如cols
, - 用于存储一维数组的动态数组的类型,然后是
int **
,指向int的指针,多少个rows
。
然后,您需要在(3)处循环,因为您需要独立分配大小为cols
的每个1D数组...您有rows
行,大小为cols
的每一行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。