博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构体指针释放的问题
阅读量:4947 次
发布时间:2019-06-11

本文共 813 字,大约阅读时间需要 2 分钟。

最近写GIF解析,使用了很多结构体指针。

常常出现在指针delete的时候 异常。

具体如下:

RGBQUAD *GIFGlobolColorTable;//保存全局颜色列表GIFGlobolColorTable = new RGBQUAD[gct]; memset(GIFGlobolColorTable,0,gct*sizeof(RGBQUAD));if (GIFGlobolColorTable != NULL){GifColorType * pColor = GifIn->SColorMap->Colors;for (int i = 0;i
rgbBlue = (BYTE)pColor->Blue;GIFGlobolColorTable->rgbGreen = (BYTE)pColor->Green;GIFGlobolColorTable->rgbRed = (BYTE)pColor->Red;GIFGlobolColorTable->rgbReserved = 0;pColor++;GIFGlobolColorTable++;}}else {exit(EXIT_FAILURE);}mycolortable = GIFGlobolColorTable - gct;

最后 delete GIFGlobolColorTable 的时候异常。

调试发现 在循环中GIFGlobolColorTable 指针一直在做++ ,导致最后delete的时候,指针的位置已经偏移申请的位置gct这么长

改正方法如下:只需改变最后两句

GIFGlobolColorTable-=gct; mycolortable =GIFGlobolColorTable;

 

转载于:https://www.cnblogs.com/zzugyl/archive/2012/12/11/2812912.html

你可能感兴趣的文章
SONY VPCS138EC降级安装XP
查看>>
[luogu4201][bzoj1063]设计路线【树形DP】
查看>>
手机抓包-手机劫持域名到指定服务器
查看>>
被放逐的皇后 金建云
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
网页抓取 总结
查看>>
【vue】vue中v-charts的使用
查看>>
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>
硬件之美
查看>>
[转载]java开发中的23种设计模式
查看>>
arm:启动代码判断是从nand启动还是从norflash启动,拷贝程序到内存的过程
查看>>
表格的拖拽功能
查看>>
QT5:QSS
查看>>
函数的形参和实参
查看>>
文字过长 用 ... 表示 CSS实现单行、多行文本溢出显示省略号
查看>>
1Caesar加密
查看>>