基本上,我理解指针。但是,当涉及到还涉及指针的矩阵的动态分配时,我在过程中迷路了。我想知道如何翻译这段代码以理解它。
(*a)[i] = (int*)malloc((*m) * sizeof(int));
用于读取矩阵的函数如下所示:
void reading(int *n, int *m, int ***a) {
int i, j;
printf("n=");
scanf("%d", &*n);
printf("m=");
scanf("%d", &*m);
(*a) = (int**)malloc((*n) * sizeof(int*));
for (i = 0; i < *n; i++)
(*a)[i] = (int*)malloc((*m) * sizeof(int));
for (i = 0; i < *n; i++) {
for (j = 0; j < *m; j++) {
printf("a[%d][%d]=", i, j);
scanf("%d", &(*a)[i][j]);
}
}
}
还有声明中*** a的含义是什么。在大学里,有人告诉我,第一个星号代表动态分配,而另外两个星号代表涉及矩阵。对于向量,动态分配是** v等等。但是我不能自然地在脑海中解释它,以便了解其中正在发生什么。
基本上,我理解指针。但是,当涉及到还涉及指针的矩阵的动态分配时,我在过程中迷路了。我想知道如何翻译此段...
如果变量a声明为像