首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么这样一个while会出现内存有关问题呢。

2012-07-15 
为什么这样一个while会出现内存问题呢。。。这是一个检索网络活动主机的程序:C/C++ codewhile(ntohl(startip)

为什么这样一个while会出现内存问题呢。。。
这是一个检索网络活动主机的程序:

C/C++ code
    while(ntohl(startip)<=ntohl(endip))//起始IP<结束IP    {        if(threadnumcounter>threadnumlimit)//线程数量超过限制数量(我设的是20)        {            Sleep(1000);            continue;        }        sockaddr_in * pipaddrtemp=new(sockaddr_in);        if(!pipaddrtemp)        {            cout<<"memory alloc failed"<<endl;            return;        }        *pipaddrtemp=dest;        //创建新线程        hthread=CreateThread(NULL,NULL,FindIp,(LPVOID)pipaddrtemp,NULL,NULL);//创建线程发送接收ICMP包        CloseHandle(hthread);                startip=htonl(ntohl(startip)+1);//IP加1        dest.sin_addr.s_addr=startip;    }

能成功搜出IP 但是总在最后出现提示框写调用的内存“0x0000000”不能为“read” 是因为申请内存的问题吗?

[解决办法]
hthread=CreateThread(NULL,NULL,FindIp,(LPVOID)pipaddrtemp,NULL,NULL);
是不是要判断一下是否创建成功?
if(hthread!=NULL)
[解决办法]
单步执行跟踪一下 看书哪一步出了问题

是不是CloseHandle出了问题
[解决办法]
探讨
引用:
防御式编程

简明扼要==。。。是指健壮性那些吗。。。

热点排行