今天复习了遍51单片机编程,用《8051单片机C程序设计完全手册》,有了个重新的认识
在PC机上调用malloc()之前不需要初始化内存池,因为操作系统掌管着所有内存
而对于C51又有不同,由于没有操作系统,需要分配为动态内存的区间并不清楚,
需要头文件<stdlib.h>故需调用init_mempool来初始画内存池。
void init_mempool (void _MALLOC_MEM_ *p, unsigned int size);//起始地址和大小
用malloc()和realloc()动态分配的内存也可能包含垃圾数据,
用calloc()获得的内存为全零。
本文探讨了51单片机使用C语言编程时的内存管理方法,对比了PC机上C语言内存管理机制。介绍了在无操作系统环境下使用malloc()前需要通过init_mempool初始化内存池的过程,并指出动态分配内存可能存在的问题。
1972

被折叠的 条评论
为什么被折叠?



