C语言如何给二级指针动态内存分配、初始化和释放
一、需求
需要动态创建二维数组,但数组大小是一个变量。
二、解决方案
#include<stdio.h>
#include<malloc.h>
int main()
{
int m = 10;
int n = 0;
//分配内存
int** arr = (int**)malloc(sizeof(int)*m);
for(int i=0; i<m; i++)
{
arr[i] = (int*)malloc(sizeof(int)*m);
}
//初始化内存
memset(*arr, 0, sizeof(int)*m*n);
//内存使用
//todo arr[i][j]
//释放内存
for(int i=0; i<m; i++)
{
free(arr[i]);
}
}