LINUX.ORG.RU

История изменений

Исправление Xenius, (текущая версия) :

Скажем, есть у тебя статическая переменная: один раз выделил память, а дальше она постоянно используется, free() здесь делать нельзя.

free делать после последнего использования

Еще более распространенный вариант: твоя функция выделяет память под объект и возвращает его (например, как strdup)!

Если функция возвращает указатель, то память, выделенную под него чистить не нужно, если функция возвращает значение — то все локальные переменные чистить.

Кстати, что думаешь о Tcl и Lua? Второй вроде побыстрее, но памяти больше жрёт. При некоторых оптимизациях начинает работать не так уж и медленно.

Исправление Xenius, :

Скажем, есть у тебя статическая переменная: один раз выделил память, а дальше она постоянно используется, free() здесь делать нельзя.

free делать после последнего использования

Еще более распространенный вариант: твоя функция выделяет память под объект и возвращает его (например, как strdup)!

Если функция возвращает указатель, то память, выделенную под него чистить не нужно, если функция возвращает значение — то все локальные переменные чистить.

Кстати, что думаешь о Tcl и Lua? Второй вроде побыстрее, но памяти больше жрёт.

Исходная версия Xenius, :

Скажем, есть у тебя статическая переменная: один раз выделил память, а дальше она постоянно используется, free() здесь делать нельзя.

free делать после последнего использования

Еще более распространенный вариант: твоя функция выделяет память под объект и возвращает его (например, как strdup)!

Если функция возвращает указатель, то память, выделенную под него чистить не нужно, если функция возвращает значение — то все локальные переменные чистить.