我有两个功能-
char* f2(void){
char* str = malloc(100);
strcpy(str, "string1");
return str;
}
char* f1(void){
char* reply = malloc(150);
strcpy(reply, "string = ");
strcat(reply, f2());
return reply;
}
我是这么叫梅因的-
printf("reply = %s", f1());
我的问题是:
我单独释放(回复)就足够了吗?还是必须在f1()中显式释放(str)?
最佳答案
您还必须释放f1()
的返回值。改变
strcat(reply, f2());
致:
char *str = f2();
strcat(reply, str);
free(str);
关于c - C:从另一个函数释放指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26099909/