C语言二维数组动态内存分配
时间: 2024-06-18 09:05:06 浏览: 130
C语言二维数组动态内存分配是指在程序运行时动态地为二维数组分配内存空间。相比于静态内存分配,动态内存分配具有更大的灵活性和更好的效率。
实现动态内存分配需要用到C语言中的malloc和free函数。具体步骤如下:
1. 定义一个指向二维数组的指针变量。
2. 使用malloc函数为二维数组分配内存空间,并将返回的指针赋值给指针变量。
3. 使用指针变量访问二维数组元素。
4. 使用free函数释放动态分配的内存空间。
以下是一个示例代码:
```
int main() {
int **array;
int i, j;
int rows, cols;
// 获取二维数组的行数和列数
printf("请输入二维数组的行数和列数:");
scanf("%d%d", &rows, &cols);
// 分配内存空间
array = (int **)malloc(rows * sizeof(int *));
for (i = 0; i < rows; i++) {
array[i] = (int *)malloc(cols * sizeof(int));
}
// 赋值和输出
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
array[i][j] = i + j;
printf("%d ", array[i][j]);
}
printf("\n");
}
// 释放内存空间
for (i = 0; i < rows; i++) {
free(array[i]);
}
free(array);
return 0;
}
```
阅读全文