GDI+ new建立FontFamily指针后用delete出错的问题和解决方法
来源:互联网 发布:淘宝全民抢拍在哪里 编辑:程序博客网 时间:2024/06/08 16:26
在使用GDI+时,我们有时用new建立某些类的指针,在用delete释放内存时会出现异常,如下面的代码:
FontFamily fontFamily(L"Arial");Gdiplus::Font font(&fontFamily, 8, FontStyleRegular, UnitPixel);RectF rectf(10.0f, 10.0f, 500.0f, 500.0f);SolidBrush solidbrush(Color(255, 0, 0, 0));INT count = 0;INT found = 0;WCHAR familyName[LF_FACESIZE];WCHAR* familyList = NULL;FontFamily* pFontFamily = NULL;InstalledFontCollection installedFontCollection;count = installedFontCollection.GetFamilyCount();pFontFamily = new FontFamily[count];installedFontCollection.GetFamilies(count, pFontFamily, &found);familyList = new WCHAR[count*(sizeof(familyName) + 3)];ZeroMemory(familyList, count*(sizeof(familyName) + 3));for (INT j = 0; j < count; ++j){pFontFamily[j].GetFamilyName(familyName);StringCchCatW(familyList, count*(sizeof(familyName) + 3), familyName);StringCchCatW(familyList, count*(sizeof(familyName) + 3),L", " );}gs->DrawString(familyList, -1, &font, rectf, NULL, &solidbrush);delete pFontFamily;delete familyList;
上面代码运行,delete会出错,通过断点发现异常点如下图:
由红线可知代码异常是出现在删除一个对象(FontFamily)指针,而pFontFamily是一个FontFamily对象数组指针,
解决方法是把:
delete pFontFamily;改成:
delete []pFontFamily;
用new建立其它类指针在delete时出错也是,要注意你是建立的对象指针(p=new FontFamily)还是对象数组指针(p=new FontFamily[count]),
对象指针用:delete p
对象数组指针用delete []p
阅读全文
0 0
- GDI+ new建立FontFamily指针后用delete出错的问题和解决方法
- C++中指针的new和delete
- 容器内指针的new和delete
- 二维指针的new和delete
- 指针⑶,new和delete
- new和delete,以及指针
- c++ new new[]和 delete delete[] 问题
- new delete的问题
- c++中new和delete,delete[]的匹配问题(转载)
- FontFamily 和Font 的区别
- 在建立与服务器连接时出错问题的解决方法
- C++(1) 指针 new 和delete
- new和delete 基类指针指向继承类的对象时,delete的过程
- C++ new delete的问题
- 关于c++中new和delete的长度问题
- char*、new和delete联合使用的问题
- new和delete对结构体分配内存的问题
- New和delete的原理
- 第一个练习
- vs基础设置和使用
- Maven项目和Tomcat部署
- 读写分离遇到的问题
- 安装mysql和win系统上安装Navicat Premium 12
- GDI+ new建立FontFamily指针后用delete出错的问题和解决方法
- C/C++程序从cpp文件到最终生成可执行文件的过程分析
- 在 Anaconda3 5.0.0 中安装 Plot.ly Dash
- 51nod 1239 欧拉函数之和
- HDU
- Numpy基础介绍
- struts国际化
- 关于arm虚拟内存说明
- 数据库基本操作小结