释放函数返回的内存

时间:2011-10-29 18:41:18

标签: c free

我应该释放调用函数中以下两个函数返回的内存吗?我看到函数get_current_time没问题,但get_filename_ext没问题。我看到类似问题here,但不确定是否回答了我的问题。一般来说我应该寻找什么?

char *get_current_time(void){
    struct tm *local;
    time_t t;
    t = time(NULL);
    local = gmtime(&t);
    return asctime(local);
}

char *get_filename_ext(const char *filename) {
        const char *dot = strrchr(filename, '.');
        if(!dot || dot == filename) return "";
        return dot + 1;
    }

1 个答案:

答案 0 :(得分:4)

这些功能都没有分配任何内存。所以实际上没有什么可以自由的。

char*返回的asctime是内部缓冲区。所以你无论如何也无法释放它。