main函数的返回会导致异常

时间:2012-03-03 09:48:51

标签: c visual-studio winpcap

我正在编写一个使用winpcap发送RAW Socket的程序,一切似乎都好,数据包已成功发送。但是当发送行为结束时,Windows会显示一个对话框告诉我:

SendRawSocketsConsole.exe has stopped working

详细信息如下:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: SendRawSocketsConsole.exe
  Application Version:  0.0.0.0
  Application Timestamp:    4f51de63
  Fault Module Name:    ntdll.dll
  Fault Module Version: 6.1.7600.16915
  Fault Module Timestamp:   4ec49caf
  Exception Code:   c0000005
  Exception Offset: 00055401
  OS Version:   6.1.7600.2.0.0.256.1
  Locale ID:    2052
  Additional Information 1: e8ad
  Additional Information 2: e8adce1c2b9e7be834b4063ac3c53863
  Additional Information 3: e8ad
  Additional Information 4: e8adce1c2b9e7be834b4063ac3c53863

Read our privacy statement online:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0409

If the online privacy statement is not available, please read our privacy statement offline:
  C:\windows\system32\en-US\erofflps.txt

我调试了程序,发现程序终于停在了行():

if (pHead == NULL)
{
    *errno_tmp = ENOMEM;
     RTCCALLBACK(_RTC_FuncCheckSet_hook,(1));
}

它位于dbgheap.cerrno_temp的值为零,导致错误,我不知道可能导致错误的条件,我尝试构建release而不是{ {1}},但仍然失败,任何人都可以提出任何想法吗?任何帮助赞赏。即时通讯使用VS2008和Win7:)

1 个答案:

答案 0 :(得分:0)

重点是:seudo = new unsigned char(sizeof(P_HDR) + strlen(dump));,应该是 seudo = new unsigned char[sizeof(P_HDR) + strlen(dump)];