读取位置 0xccccccdc 时发生访问冲突问题
附加信息 2013-12-11 11:16:08 在用vs2008编程的时候遇到一个问题:生成的时候没有错,但是运行的时候会提示说:0x00479d06 处未处理的异常: 0xC0000005: 读取位置 0xccccccdc 时发生访问冲突。
然后,调试的时候,会跳转到:fmtflags __CLR_OR_THIS_CALL flags() const
{ // return format flags
return (_Fmtfl);//在此处显示有错误。
}
通过在网上查找发现大部分都是因为使用了MFC等高端的编程才导致的,可我调试的编程是一个挺简单的判断两个IP地址是否在同一个网络下,即两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的:
int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask)
{
unsigned long tmp1=inet_addr(pcIp1);
unsigned long tmp2=inet_addr(pcIp2);
unsigned long tmp=inet_addr(pcSubNetworkMask);
cout<<tmp1<<endl;
cout<<tmp2<<endl;
cout<<tmp<<endl;
unsigned long i=tmp1&tmp;
unsigned long j=tmp2&tmp;
cout<<i<<endl;
cout<<j<<endl;
if(i==j)
return 1;
else return 0;
}
运行后就出现了访问错误。