new与delete[]的问题请教?
程序代码如下,关键是下面的两句:
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
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
...全文
相关推荐
2023年C++语言面试宝典整理.doc
2.delete与delete[]的区别delete只会调用一次析构函数,而delete[]会调用每一个成员的析构函数。在使用delete和delete[]时,需要注意new和new[]的配套使用。
GIS程序设计实验报告(c++).pdf
思考题解答:(1)内联函数与无参数的宏定义和普通函数的区别是什么?使用内联函数应注意什么问题?内联函数是一种特殊的函数,它可以在编译时将函数体展开,从而提高程序的执行效率。
PHP程序设计-3期(KC016) 4.3.6删除记录常见问题.doc
本节将重点关注"删除记录"这一主题,这是PHP与数据库交互时常见的任务之一,尤其是在进行Web应用开发时。我们将讨论在执行删除操作时遇到的一些常见问题及其解决方案。
C、C++面试宝典2012版
1. new、delete、malloc、free 关系在 C++ 中,new 和 delete 是一对运算符,用于动态申请和释放内存。new 调用构造函数,而 delete 会调用对象的析构函数。
C++程序员面试题及答案
- **delete**:用来释放由new分配的内存。对于单个对象,使用 delete; 对于数组,则使用 delete[]。#### 6. 什么是智能指针?智能指针的优点是什么?


