大佬教程收集整理的这篇文章主要介绍了c – Valgrind报告说getaddrinfo正在泄漏内存?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
int tcp_connect(char *address,char *port) { //printf("%s\n ",address); int status,sockfd; struct addrinfo hints,*servinfo,*p; memset(&hints,sizeof hints); hints.ai_family = AF_UNSPEc; hints.ai_socktype= SOCK_STREAM; status = getaddrinfo(address,port,&hints,&servinfo); if(status != 0){ printf("tcpconnect: getaddrinfo Failed\n"); } for(p = servinfo; p != NULL; p = p->ai_next) { sockfd = socket(p->ai_family,p->ai_socktype,p->ai_protocol); if(sockfd == -1){ printf("tcpconnect: socket Failed\n"); conTinue; } status = connect(sockfd,p->ai_addr,p->ai_addrlen); if(status == -1){ close(sockfd); printf("tcpconnect: connect Failed\n"); conTinue; } break; } if (p == NULL){ printf("tcpconnect: Could not get a valid socket file descriptor\n"); return -1; } freeaddrinfo(servinfo); //return socket return sockfd; }
==7803== 384 bytes in 8 blocks are definitely lost in loss record 30 of 37 ==7803== at 0x4023CC8: malloc (vg_replace_malloc.c:236) ==7803== by 0x413FE46: gaih_inet (in /lib/libc-2.7.so) ==7803== by 0x4141CA1: getaddrinfo (in /lib/libc-2.7.so) ==7803== by 0x804D20D: tcp_connect (tcpconnect.c:18) ==7803== by 0x804D505: update_ra@L_696_13@_data_t (ra@L_696_13@data.c:69) ==7803== by 0x4073368: start_thread (in /lib/libpthread-2.7.so) ==7803== by 0x4159CFD: clone (in /lib/libc-2.7.so)
我对此内存泄漏感到困惑,因为我确保在底部调用freeaddrinfo.这可能是Valgrind或freeaddrinfo中的错误吗?
以上是大佬教程为你收集整理的c – Valgrind报告说getaddrinfo正在泄漏内存?全部内容,希望文章能够帮你解决c – Valgrind报告说getaddrinfo正在泄漏内存?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。