new与delete[]的问题请教?

tsohg tsohg 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
程序代码如下,关键是下面的两句:
pIInfo=(PIP_INTERFACE_INFO)new(char[ulSize]); ///00000000000000000
delete pIInfo; ///00000000000000000
请问如下面那样delete会不会造成内在泄漏?? 正确是不是应该delete []pIInfo或
delete [] (char*)pIInfo ?

/////////////////////////////////////////////////////////////////////////////////

DWORD ulNumOfInterfaces=0;
pGNOInterface=(PGNOINTERFACE)GetProcAddress(hInst,"GetNumberOfInterfaces");
pGNOInterface(&ulNumOfInterfaces);
cout<<"U have "<<ulNumOfInterfaces<<" network interfaces\n";
//获取网络接口信息
pGIInfo=(PGIINFO)GetProcAddress(hInst,"GetInterfaceInfo");
PIP_INTERFACE_INFO pIInfo=NULL;
ulSize=0;
pGIInfo(pIInfo,&ulSize);//第一次调用,获取缓冲区大小

pIInfo=(PIP_INTERFACE_INFO)new(char[ulSize]); ///00000000000000000

pGIInfo(pIInfo,&ulSize);
//显示网络接口信息
for(int i=0;i<pIInfo->NumAdapters;i++){
cout<<"Adapter index:"<<pIInfo->Adapter[i].Index<<endl;
cout<<"and name:"<<pIInfo->Adapter[i].Name<<endl;
}

delete pIInfo; ///00000000000000000

...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
tsohg
C++ 语言 65,214 成员 250,514 内容