主要内容:
char *tmpip;
tmpip = get_public_ip();
函数get_public_ip:
char * get_public_ip(void){
char *ipresult;
if(((ipresult = malloc(17))) == NULL){
perror("malloc on pub ip");
exit(1);
}
if(fgets(ipresult, 16, tmpfp) == NULL){
perror("fgets error pubip");
exit(1);
}
fclose(tmpfp);
return ipresult;
}
我的问题是:
在主 free(tmpip)
里面做是好还是错了?
最佳答案
这是一种很好的编码方式:您在函数中malloc()
一些内存,并在不再需要时free()
它。一定要注释你的函数或原型(prototype),它会 malloc()
所需的内存,所以你知道你必须 free()
它。
关于c - 函数内的自由字符指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157536/