URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5804
[ Назад ]

Исходное сообщение
"выделение и освобождение памяти"

Отправлено som , 11-Окт-06 15:59 
создаю IP пакет, выделил память с помощью malloc
посылаю IP пакет с помощью библиотеки libdnet, функцией ip_send
пытаюсь очистить с free, но память очищается до того как ip_send отправит пакет и получается что ничего не посылается
как мне защитить память от очистки пока ip_send не отправит пакет?
freebsd



Содержание

Сообщения в этом обсуждении
"выделение и освобождение памяти"
Отправлено ACCA , 12-Окт-06 05:37 
>посылаю IP пакет с помощью библиотеки libdnet, функцией ip_send
>пытаюсь очистить с free, но память очищается до того как ip_send отправит
>пакет и получается что ничего не посылается
>как мне защитить память от очистки пока ip_send не отправит пакет?

Не надо её защищать - если всё в порядке, ip_send сделает копию, которой потом пользуется. Если пакет не ушёл, кривость в другом месте.

Смотри, что вернул ip_send.


"выделение и освобождение памяти"
Отправлено som , 12-Окт-06 14:47 
>>посылаю IP пакет с помощью библиотеки libdnet, функцией ip_send
>>пытаюсь очистить с free, но память очищается до того как ip_send отправит
>>пакет и получается что ничего не посылается
>>как мне защитить память от очистки пока ip_send не отправит пакет?
>
>Не надо её защищать - если всё в порядке, ip_send сделает копию,
>которой потом пользуется. Если пакет не ушёл, кривость в другом месте.
>
>
>Смотри, что вернул ip_send.

тогда в чём может быть ещё кривость?
если убрать free то всё работает на ура, но пожирает память
если добавить free то ничего не работает ;)