c语言如何动态开辟二维数组

c++和c语言如何动态开辟二维数组?就是可以用变量申请空间的

可以利用new开辟一个二级指针,这个二级指针可以指向多个一级指针,这个一级指针可以指向多个数据。

int m,n;
scanf("%d",&m,&n);
char **p = (char**)malloc(sizeof(char*)*m));
for(int i=0;i<m;i++)
    p[i] = (char*)malloc(sizeof(char)*n));
 
C++可以用new
char **p = new char*[m];
for(int i=0;i<m;i++)
    p[i] = new char[n];

同时产生多个变量,不知道选取哪一个好了。