C ++-使用指针符号初始化2D数组

Q_A

我正在使用C ++开发2D数组。我在连接数组和指针的概念时遇到麻烦。我知道它们在内存分配和访问元素方面是相关的。例如

int *arr;
int num = arr + 1*sizeof(int);

是相同的

int arr[];
int num = arr[1];

我正在尝试在2D数组和指针之间找到相同的连接这是我的代码

void printGrid(int **arr) {
 for (int i = 0; i < 10; i++) {
  for (int j = 0; j < 10; j++) {
   cout << setw(3);
   cout << arr[i][j] << " ";
  }
  cout << endl;
 }
}

int main() {
 int **grid;
 srand(time(NULL));
 for (int i = 0; i < 10; i++) {
  for (int j = 0; j < 10; j++) {
   grid[i][j] = rand() % 11;
  }
 }
 printGrid(grid);
}

当我编译时,它会编译。然后,当我尝试运行它时,我遇到了段错误。有人可以指出我代码中的错误吗?

太感谢了

Gmoniava
int **grid;
 srand(time(NULL));
 for (int i = 0; i < 10; i++) {
  for (int j = 0; j < 10; j++) {
   grid[i][j] = rand() % 11;
  }
 }

应该为动态数组分配内存的部分在哪里?可能还因为它的元素?为了解决这个问题,您可以做

// Allocating memory for array and elements
int **grid = new int*[10];
for (int i = 0; i < 10; i++) {
  grid[i] = new int[10];
}
// Now fill the array as you had in your code
//
...
// Deletion part
for (int i = 0; i < 10; i++) {
  delete[] grid[i];
}
delete[] grid;

还,

我正在使用C ++开发2D数组。我在连接数组和指针的概念时遇到麻烦。我知道它们在内存分配和访问元素方面是相关的。例如

int * arr; int num = arr + 1 * sizeof(int);

是相同的

int arr []; int num = arr [1];

不,他们不一样。但这是相同的:

int x[] = {0, 2, 3};
int *arr = x;
int num = *(arr + 1); //Look up pointer arithmetic; same as num=arr[1];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中初始化指向动态2D数组的指针

来自分类Dev

在C ++中使用1D数组初始化2D数组

来自分类Dev

在C中初始化2D char数组

来自分类Dev

在A类C ++中初始化2D数组

来自分类Dev

在C ++中初始化Dynamic 2d数组

来自分类Dev

C,用for循环初始化2D数组

来自分类Dev

如何在C ++中使用相同的值初始化2D数组

来自分类Dev

使用C中的宏初始化未知大小的2D数组

来自分类Dev

在C ++中将2D指针数组初始化为成员变量

来自分类Dev

在C ++中将2D指针数组初始化为成员变量

来自分类Dev

在C中初始化2D / 3D数组的简便方法?

来自分类Dev

在C ++中初始化指针数组

来自分类Dev

在C中初始化指针数组

来自分类Dev

初始化指向数组C ++的指针

来自分类Dev

这个有效的C ++是否可以初始化2D动态数组?

来自分类Dev

在构造函数C ++中用零初始化2D数组

来自分类Dev

在C中声明和初始化未知大小的2D数组

来自分类Dev

c 2d数组静态初始化,保留大小

来自分类Dev

Objective-C中的2D数组初始化

来自分类Dev

无法在C中初始化大型2D数组

来自分类Dev

在C中初始化2D数组的整个列

来自分类Dev

在C TIC TAC TOE游戏中初始化2D字符数组

来自分类Dev

调整和初始化2D数组C#

来自分类Dev

在C ++中初始化2D向量

来自分类Dev

C ++:2D静态地图的初始化

来自分类Dev

关于使用C ++初始化指针

来自分类Dev

如何在C ++中使用构造函数初始化2D向量?

来自分类Dev

如何在C ++中使用构造函数初始化2D向量?

来自分类Dev

C-2d数组未用零初始化