c - 函数内的自由字符指针

标签 c function-pointers

主要内容:

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/

相关文章:

c - 移动二维数组中的元素

c - 如何检查 float 是否无穷大/零/非正规?

c++ - 使用函数类型与函数指针作为 C++ 模板函数参数的区别?

linux - 获取函数指针以在我没有直接加载的共享库中运行

python - Gcc、Python 和 Google 计算器中的大 float 计算错误

c - 使用#define 强制调用一个函数

c - 在函数C中分配内存二维数组

c - 这个函数指针在这里发生了什么

c++ - 如何使用具有不同模板参数的变量制作 vector ?

c - 函数指针 - 为什么传递结构作为参数?