new与delete[]的问题请教?
tsohg 2004-11-16 10:21:45 程序代码如下,关键是下面的两句:
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