powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / утечка памяти
4 сообщений из 4, страница 1 из 1
утечка памяти
    #34986545
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обнаружил утечку памяти
LEAK SUMMARY:
definitely lost: 49 bytes in 5 blocks.
possibly lost: 0 bytes in 0 blocks.
still reachable: 5199 bytes in 9 blocks.
suppressed: 0 bytes in 0 blocks.
в коде
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
server = gethostbyname(host); 
        if (server == NULL) { 
            perror(  "Unknow host"); 
            return - 1 ; 
        } 
 
        bzero((char *) &serv_addr, sizeof(serv_addr)); 
        serv_addr.sin_family = AF_INET; 
        bcopy((char *)server->h_addr, 
               (char *)&serv_addr.sin_addr.s_addr, 
                server->h_length); 
        serv_addr.sin_port = htons(intern->port);
это утечка системных вызовов или исп. функц gethostbyname()
ее как-то можно устранить?
или она не страшна, исп как клиентская часть прокси, вызывается часто.
...
Рейтинг: 0 / 0
утечка памяти
    #34986994
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
valgrind'ом работал? Он, вроде, пишет откуда блок произошел... ???

В твоем примере под вопросом только gethostbyname, которая возвращает указатель на статическую память. Она выделяет память для псевдонимов, адресов. Попробуй ее протестить. Т.е., например:
1) Запустить один раз, посмотреть сколько блоков по указателям структуры и сравить с утечкой.
2) Запустить в цикле, посмотреть, увеличиваются ли утечки.

Память выделенная gethostbyname, может быть не удалена, по завершению программы, поэтому и утечка. Теоритически, при следующем вызове gethostbyname она должна модернизировать свою структуру, дополняя ее при необходимости, поэтому накапливающихся утечек не должно быть, если их, вообще, можно назвать утечками.
...
Рейтинг: 0 / 0
утечка памяти
    #34987952
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akhvalgrind'ом работал? Он, вроде, пишет откуда блок произошел... ???он мне и нашел утечку
Akh
В твоем примере под вопросом только gethostbyname, которая возвращает указатель на статическую память. Она выделяет память для псевдонимов, адресов. Попробуй ее протестить. Т.е., например:
1) Запустить один раз, посмотреть сколько блоков по указателям структуры и сравить с утечкой.
2) Запустить в цикле, посмотреть, увеличиваются ли утечки.16 байт размер структуры, но я так понял, что в структуре есть указатели на сл. структуру. на free() - ругается...
Akh
Память выделенная gethostbyname, может быть не удалена, по завершению программы, поэтому и утечка. Теоритически, при следующем вызове gethostbyname она должна модернизировать свою структуру, дополняя ее при необходимости, поэтому накапливающихся утечек не должно быть, если их, вообще, можно назвать утечками.утечка исчезает - если коменчу эту часть кода.
...
Рейтинг: 0 / 0
утечка памяти
    #34987963
akalend
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh спасибо...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / утечка памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]