dll内new和delete的问题求助
DLL文件中有这么个函数:
bool FetchFirstDevCnts(/*[out]*/char *firstDev,/*[out]*/ unsigned int *Count)
{
printf("进入调用模块!\n\n");
unsigned int i = 0;
pcap_if_t *firstdev = NULL;
pcap_if_t *d = NULL;
char errbuf[256];
firstdev = new pcap_if_t();
d = new pcap_if_t();
if(NULL == firstdev)
{
// strcpy_s(PEle,sizeof(errbuf),"Initilize point failure!");
return false;
}
printf("开始find all devices!\n\n");
if(pcap_findalldevs(&firstdev,errbuf)<0)
{
assert(memcpy(firstDev,errbuf,sizeof(errbuf)));
fprintf(stderr,"Error in pcap_findalldevs: %s\n",errbuf);
return false;
}
assert(memcpy(firstDev,firstdev,sizeof(firstdev)));
for(d=firstdev;d;i++)
{
printf("开始循环查找设备!\n\n");
if(NULL == d)
{
break;
}
d=d->next;
}
printf("结束循环查找设备!\n\n");
Count = &i;
printf("开始释放设备!\n\n");
pcap_freealldevs(firstdev);
if(NULL != firstdev)
{
printf("正在释放设备!\n\n");
delete firstdev;
firstdev = NULL;
}
printf("结束释放设备!\n\n");
return true;
}
调这个DLL中的这个函数时,报assertion failed
调试了下,出错是在 delete firstdev语句;
求教这个错误背后是什么原因?
我该怎么解决?
谢谢大家