当前位置: 代码迷 >> C语言 >> 再请教malloc()的问题
  详细解决方案

再请教malloc()的问题

热度:470   发布时间:2005-08-16 13:22:00.0
再请教malloc()的问题
一个包含10行和20列的二维字符数组

char(*ch)[20];
ch=(char*)malloc(10*20*sizeof(char));

为什么编释会出错
提示:error C2440: '=' : cannot convert from 'char *' to 'char (*)[20]'
搜索更多相关的解决方案: malloc  

----------------解决方案--------------------------------------------------------
char ch[10][20];
ch=(char*)malloc(10*20*sizeof(char));
----------------解决方案--------------------------------------------------------
Thanks

假如要开n行20列的二维数组应该怎么写?
----------------解决方案--------------------------------------------------------
上面的应该可以通过编译的吧,书上这样写ok啊
----------------解决方案--------------------------------------------------------
要是能通过就好了,问题是编译出错

谁知道到底要怎样动态开二维数组?
----------------解决方案--------------------------------------------------------
char(*ch)[20];//这个定义的意义是 ch是一个指向有20个char成员的数组的指针
与你的想法不一致。

正确的方法:

char * ch[10];//10行

for(i=0;i<10;i++)

ch[i]=(char*)malloc(sizeof(char)*20);//每行20个成员

记得free时也同样操作。
----------------解决方案--------------------------------------------------------
版主不要走那么快

如果我要动态开n*20的字符串数组要怎么写?
----------------解决方案--------------------------------------------------------
char * *ch; ch=(char**)malloc(sizeof(char*)*N); for(i=0;i<N;i++) ch[i]=(char*)malloc(sizeof(char)*20);//每行20个成员
----------------解决方案--------------------------------------------------------
ch=(char*[20])malloc(10*20*sizeof(char)); 加个这个试试看看吧
----------------解决方案--------------------------------------------------------
  相关解决方案