(int**)malloc(n * sizeof(int*))
时间: 2023-12-18 13:30:22 浏览: 219
这段代码是使用malloc函数动态分配了一个二维整型数组的内存空间。具体解释如下:
```c
int** p = (int**)malloc(n * sizeof(int*));
```
这行代码中,`int**`表示指向指针的指针,即二维数组的指针。`malloc(n * sizeof(int*))`表示分配了n个指向整型的指针的内存空间。每个指针指向一维数组的首地址。
这段代码的作用是创建一个二维整型数组,其中第一维的大小为n。通过动态分配内存空间,可以根据需要在运行时确定数组的大小。
范例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 3;
int** p = (int**)malloc(n * sizeof(int*));
for (int i = 0; i < n; i++) {
p[i] = (int*)malloc(n * sizeof(int));
}
// 初始化二维数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
p[i][j] = i + j;
}
}
// 打印二维数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", p[i][j]);
}
printf("\n");
}
// 释放内存
for (int i = 0; i < n; i++) {
free(p[i]);
}
free(p);
return 0;
}
```
这个范例演示了如何使用`malloc`函数动态分配二维整型数组的内存空间,并对其进行初始化和释放。在这个例子中,我们创建了一个3x3的二维数组,并打印出其内容。
阅读全文