LINUX.ORG.RU

Очистка памяти

 


0

3

Есть функция, вызываемая 9000 раз из другой:

fuction(char *fname)
{
int i, n, m;
char *text;
char strings[3] = {"vasya", "petya", "kolya"};
}

Из этого что-нибудь надо чистить, чтобы не было мартовской течки?

★★★★★

Последнее исправление: steemandlinux (всего исправлений: 1)

давай весь код, а то не понятно

anonymous
()

static массив сделай.

anonymous
()
char *strings[3] = {"vasya", "petya", "kolya"};
anonymous
()

Если переменная в стеке, очищать память не нужно, если в куче — нужно. Кэп.

Freyr69 ★★★
()

Интересно, как ты собрался освобождать память, не зная как с ней работать.

four_str_sam
()

В этой функции нет. А вот если бы ты заюзал strdup() для text, то надо было бы

i_gnatenko_brain ★★★★
()

это чё у тебя за звёздочки в пхп?

Pooping
()

вот короч переписал правильно, так должно работать:

fucntoin char($fname)
{
  var $int = 0, $i = 0, $n = 0, $m = 0;
  var $char = "", $text = "";
  var $strings[3] = {"vasya", "petya", "kolya"};
}
Pooping
()

как я понимаю -Wall -Werror — не скомпилируют эту функцию..

тут же fname передаётся и не используется. :)

нужно какой-то аттрибут к этому аргументу добавить

user_id_68054 ★★★★★
()

Эта функция ничего не делает и возвращает ерунду. Выкини её.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.