当前位置:  技术问答>linux和unix

[求助]这段程序内存哪儿出问题了哈

    来源: 互联网  发布时间:2016-02-01

    本文导语:  错误在HttpSocket.cpp中的Socket函数中,ppe=gethostbyname("tcp"),就是内存错误,但是我不晓得为什么错了.... bool CHttpSocket::Socket() { if(m_bConnected) return false; struct protoent *ppe=NULL; ppe=getprotobyname("tcp"); m_s=socket(PF_INET,SOCK_STREAM,ppe...

错误在HttpSocket.cpp中的Socket函数中,ppe=gethostbyname("tcp"),就是内存错误,但是我不晓得为什么错了....

bool CHttpSocket::Socket()
{
if(m_bConnected) return false;

struct protoent *ppe=NULL;
ppe=getprotobyname("tcp");

m_s=socket(PF_INET,SOCK_STREAM,ppe->p_proto);
if(m_s==-1)
{
printf("socket() failed!n");
return false;
}

return true;
}

gdb调试的提示是这样的:
****************************************************
CHttpSocket::Socket (this=0xbff9a660) at HttpSocket.cpp:31
31 if(m_bConnected) return false;
(gdb) n
33 struct protoent *ppe=NULL;
(gdb) n
34 ppe=getprotobyname("tcp");
(gdb) n
*** glibc detected *** free(): invalid next size (normal): 0x09e20cd8 ***

Program received signal SIGABRT, Aborted.
0x001327a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
(gdb) bt
#0 0x001327a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
#1 0x001727f5 in raise () from /lib/tls/libc.so.6
#2 0x00174199 in abort () from /lib/tls/libc.so.6
#3 0x001a64ea in __libc_message () from /lib/tls/libc.so.6
#4 0x001acc6f in _int_free () from /lib/tls/libc.so.6
#5 0x001acfea in free () from /lib/tls/libc.so.6
#6 0x0019d516 in fclose@@GLIBC_2.1 () from /lib/tls/libc.so.6
#7 0x00825305 in _nss_files_getprotobyname_r () from /lib/libnss_files.so.2
#8 0x00229332 in getprotobyname_r@@GLIBC_2.1.2 () from /lib/tls/libc.so.6
#9 0x002291f1 in getprotobyname () from /lib/tls/libc.so.6
#10 0x0804961e in CHttpSocket::Socket (this=0xbff9a660) at HttpSocket.cpp:34
#11 0x08048ed4 in Run (strUrl=0xbffcdb25 "http://hi.baidu.com") at http.cpp:54
#12 0x08048d60 in main (args=2, argv=0xbff9b074) at http.cpp:16










代码在这儿  http.rar

|
pp类型错误.应该为
struct hostent

|
ppe

|
If no error occurs, getprotobyname returns a pointer to the protoent. Otherwise, it returns a null pointer 
so,the program will be dump at m_s=socket(PF_INET,SOCK_STREAM,ppe->p_proto);

|
ppe=getprotobyname("tcp");
没有检查ppe的值

|
这段代码是没有问题的,一定是其它的部分引起的问题,下面的程序是可以运行的。
#include 
#include 
#include 

#include 

#include 
using namespace std;

class CHttpSocket
{
public:
        bool Socket();
        CHttpSocket()
        {
               m_bConnected = false;
               m_s = 0;
        }
private:
        bool m_bConnected;
        int m_s;
};

bool CHttpSocket::Socket()
{
        if(m_bConnected) return false;

        struct protoent *ppe=NULL;
        ppe=getprotobyname("tcp");
        cout 

    
 
 

您可能感兴趣的文章:

  • 紧急求助:服务器内存的问题!!!
  • [求助]如何设置uclinux内核中的内存
  • 内存问题,向各位高手求助!!!
  • 求助!怎样实现一个程序长期固定的在一块物理内存
  • 【求助】linux下什么是共享内存,怎么查看。
  • 【求助】unix下如何进行内存管理?
  • 求助:java实现显示linux下的cpu占用率,内存使用情况,硬盘占用情况
  • 【求助】AIX下进程内存分配问题,无法分配超过256M的内存
  • 求助 关于 fprintf 是否泄漏内存?
  • 求助高手:用sar -r 和用vmstat得到的内存数据有什么区别?
  • 大虾 紧急求助!!!!如何求得当前机子的处理器利用率和内存利用率?
  • 【求助】如何在应用程序中得到系统的剩余物理内存大小?
  • 求助linux普通用户下内存共享(系统V共享)大家进来看看啊!急!!
  • 关于共享内存的进程间通信问题【求助】
  • 求助:我这个内存共享的小程序,编译没错,运行有错,请各位大哥帮呆板能够我,谢谢!
  • 求助:父进程被kill掉以后,子进程在任务表中所占内存是怎样释放的?
  • 内存问题,向各位高手求助!!! iis7站长之家
  • 求助:unix下内存对齐问题的解决
  • 关于共享内存的问题【求助】
  • 菜鸟求助:Linux 应用程序后台启动后关闭窗口程序退出
  • 求助 如何取消fedora 8启动时候的欢迎应用程序
  • 高分求助foxpro的jdbc驱动程序!!!!
  • 高分求助程序框架!!!!
  • 求助访问linux下jboss应用程序?
  • 求助:脚本文件和主程序通信问题
  • 求助:程序移植,让程序拷过去就可以用
  • Linux配置程序求助
  • 程序打包,求助!
  • [求助]如何获取一个程序所使用的系统调用和参数?
  • 菜鸟求助:如何让自己编的小程序,开机自动运行?
  • gtk程序中如何定时刷新?求助
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3