动态内存堆的使用2020-04-26
栈:(stack)由编译器自动分配和释放
堆:(heap)一般由程序员分配和释放 malloc()函数
char *p=NULL;
p=(char *)malloc(sizeof(char));
free(p);
rt_system_heap_init((void *)HEAP_BEGIN,(void *)HEAP_END);
指定系统内存分配空间,堆起始地址和结束地址
内存复位
当我们每次申请到新的内存块之后,建议对申请到新的内存块清0操作。
p=rt_molloc(10);
if(p!=rt_RULL)
rt_memset(p,0,10);
内存泄漏
动态分配的堆内存,未释放或无法释放,导致程序运行减慢或崩溃。
注意:rt_malloc和rt_free 配套使用
上一篇下一篇