作业帮 > 综合 > 作业

int m(char * p) { p=malloc(10); return 1;} int main() { char

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/04 14:48:56
int m(char * p) { p=malloc(10); return 1;} int main() { char *p; m(p); strcpy(p,"abc"); return 0;}
今天参加一公司C语言笔试,这一题没有做对.不知道该咋么改才是最佳答案,
int m(char * p)
{
p=malloc(10);
return 1;
}
int main()
{
char *p;
m(p);
strcpy(p,"abc");
return 0;
}
忘了考虑这个实参传进去,最后怎么是修改实参了.
原先的是传值,导致实参p没有分配内存成功(分配给函数里的形参p了)
修改为
int m(char **p)
{
*p = (char *)malloc(10);
return 1;
}
int main()
{
char *p;
m(&p);
strcpy(p,"abc");
free(p);
return 0;
}