Освободить память, возвращаемую функциями - PullRequest
1 голос
/ 29 октября 2011

Должен ли я освободить память, возвращаемую следующими двумя функциями в функции вызывающего абонента?Я вижу, что это нормально с функцией get_current_time, но не хорошо с get_filename_ext.Я вижу похожий вопрос здесь , но не уверен, что отвечает на мой вопрос.В общем, что я должен искать?

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 Ответ

4 голосов
/ 29 октября 2011

Ни одна из этих функций не выделяет какую-либо память.Так что на самом деле ничего не нужно освобождать.

char*, возвращаемое asctime, является внутренним буфером.Так что вы все равно не можете освободить его.

...