//动态二维数组练习
int m = 5;
int n = 3;
//指向指针的指针可以用来表示二维数组,因为一个二维数组本质上也是一个指针数组。
int **arr=new int*[m]; //指针数组的每个元素都指向一个长度为 m的int数组
for (int i = 0; i < m; ++i) {
arr[i]=new int[n]; // 每行分配长度为 n 的 int 数组
}
//数组赋值
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
arr[i][j]=std::rand()%10;
}
}
for (int x = 0; x < m; ++x) {
for (int y = 0; y < n; ++y) {
qDebug()<<arr[x][y];
}
}
//这里不能用这个方法打印数组长度,因为sizeof(arr) 返回的是指向指针的指针 arr 占用的内存空间大小
//而不是二维数组中元素的个数。指向指针的指针 arr 占用的内存空间大小是固定的,因此 sizeof(arr) 的结果始终为 8
//如果是静态数组,例如int arr[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};可以用
qDebug()<<"错误的数组长度"<<sizeof(arr)/sizeof(arr[0][0]);
qDebug()<<"正确的数组长度"<<m*n;
delete[] arr;
C++ 二维动态数组学习
最新推荐文章于 2024-08-26 23:00:00 发布