Как использовать функцию atexit () для освобождения памяти?

Это простой код:

#include <stdio.h>
#include <stdlib.h>

void cleanUp(){
    printf("I have to do free up memory\n");
}

int main(){

    char *temp;

    temp = (char *)malloc(10*sizeof(char)); 

    atexit(cleanUp);

    exit(0);

    free(temp);

    return 0;
}

Когда программа выйдет, как мне освободить память. Функция cleanUp не имеет параметров. Итак, как я могу освободить память в функции cleanUp, чтобы не было утечки памяти.


person o_O    schedule 12.03.2016    source источник
comment
Функция cleanUp должна быть void(*)(void).   -  person 2501    schedule 12.03.2016
comment
@ThomasDickey Спасибо. За это усилие должна быть награда / значок.   -  person 2501    schedule 12.03.2016
comment
Нет, но всем, кто ответит на дуппинг, надо ответить-забанить на день: D   -  person Antti Haapala    schedule 12.03.2016
comment
@AnttiHaapala Интересная стратегия. Мы определенно не должны банить аскеров. Но новички в ответах не подозревают о дублировании и не подлежат наказанию. Я считаю, что следует использовать положительное подкрепление.   -  person 2501    schedule 12.03.2016
comment
Его работа для malloc. Что я могу сделать, чтобы закрыть открытый файл?   -  person o_O    schedule 12.03.2016