关于未对齐指针释放问题(Non-aligned pointer being freed)

也许是Mac系统设计比较好的缘故,原来在Linux、Solaris上都未曾发现的问题,但是却在Mac上发现了。问题是这样的,原来有一个总的HTONS/HTONL转换函数,此函数要转换的值原来默认是不包括公共数据包头的,但是我的程序确需要这个公共数据包头,于是乎,我在函数里多分配了公共数据包头的空间,但是,为了不使改动太大,仅仅将原来转换的指针向前移了一个公共数据包头的位置,这样原来的代码就无需作任何改动就可以正常工作了。问题是转换后的数据是存放在新分配的内存里。当然转换前的数据需要释放,问题的关键就在这里。在释放之前应该将转换前的指针移回原来的位置,这样释放空间才完整,不然有一部分空间就未曾释放。换句话说就意味着内存泄露。让人汗颜的是我并没有这样做。现在问题爆发出来,我才发现自己所犯的错误。找到问题改正就很简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值