本文主要介绍C语言内存相关的编程经验和技巧,分为分配内存,使用内存和释放内存三个部分,供相关开发人员参考。
因为在不同平台上进行访问内存效率更高。甚至有些平台,如果内存没有8字节对齐会出现问题。
在分配内存的时候,使用自定义的malloc函数,在分配内存前后加上标志字节如0x5A5A,这样如果这块内存的标志位被越界修改后,在释放的时候能够判断出来,进行报错。不会导致更严重的crash发生。
为算法每个模块分配完内存之后,仿真调试时,将内存地址和分配大小打印出来,计算一下对应地址和偏移量是否正确,保证不会出现因为内存偏移和预期不一致导致的crash问题。
在释放完内存后,该指针指向的位置还是原来的内存的地址,但是此时对应地址上的内存已经不能被使用了。所以需要将该指针置为NULL。这样做的好处是:在下次使用该指针时,如果做了非空判断就会直接报错返回,否则会造成野指针访问而crash。
本文主要介绍C语言内存相关的一些编程技巧,持续更新中,供相关开发人员进行参考,也欢迎大家一起讨论交流~