大家好,关于malloc的问题
void getmemory(char *p){ p=(char *)malloc(sizeof(char)*10); }void main(){ char *str=NULL; getmemory(str); strcpy(str,"hello world!"); printf(str);}
void getmemory(char **p){ *p=(char *)malloc(sizeof(char)*10); }void main(){ char *str=NULL; getmemory(&str); strcpy(str,"hello world!"); printf(str);}
[解决办法]
你申请的那段内存没问题啊,是你的那个printf("%s",str);有问题
[解决办法]
嗯,2楼说的有道理,学习了
[解决办法]
//返回char*类型的xsize长度的空间char *getmemory(int xsize){ return (char *)malloc(sizeof(char)*xsize); }void main(){ char *str=NULL; str=getmemory(10);//这样不是更通用了吗?原代码中的错误如楼上已经指出:改变的不是STR的指向,而是修改的现在指向的地址的内容。 strcpy(str,"hello world!"); printf(str);}