Программирование на C и C++

Онлайн справочник программиста на C и C++

free

void free(void *ptr)

Прототип: 
Описание: 

Функция free() возвращает память, на которую указывает параметр ptr, назад в кучу. В резуль­тате эта память может выделяться снова.

Обязательным условием использования функции free() является то, что освобождаемая память должна была быть предварительно выделена с использованием одной из следующих функций: malloc(), realloc() или calloc(). Использование неверного указателя при вызове этой функции обычно ведет к разрушению механизма управления памятью и краху системы.

Пример: 
Следующая программа сначала выделяет место для строк, вводимых пользователем, а затем осво­бождает память:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *str[100];
int i;
for(i=0; i<100; i++)
 {
if((str[i]=(char *)malloc(128))==NULL) {
printf("Allocation error.");
exit (0);
}
gets (str[i]);
}

/* освобождение памяти */
for(i=0; i<100; i++) free(str [i]);
return 0;
}