再请教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)); 加个这个试试看看吧
----------------解决方案--------------------------------------------------------