一个简单的程序,谁帮我看看
- C/C++ code
char (*name)[30]; *name=(char*)malloc(sizeof(name)); bool i=1; for(int n=0;n<30;n++) { snprintf(name[n],sizeof(name),"test.%d",n+1); }如上所示,我想把字符串存储在指针数组里面,结果却报错,哪位帮我看看
[解决办法]
你的name是一个指针,指向一个数组。你不能 *name=(char*)malloc(sizeof(name));//这样。
你可以使用2级指针
[解决办法]
char **name=(char**)malloc(sizeof(char*)*30);
for(int i=0;i<30;++i)
name[i]=(char*)malloc(30);
for(int n=0;n<30;n++)
{
snprintf(name[n],sizeof(name),"test.%d",n+1);
}
[解决办法]
越界访问
sizeof(name)大小是指针的空间---4
[解决办法]
- C/C++ code
char (*name)[30];