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