heap&& stack
时间: 2023-08-27 11:14:02 浏览: 78
堆和栈在单片机下的分布有一些特殊。在单片机下,系统会为每个程序分配一部分栈空间和堆空间。栈空间是用来存储局部变量、函数参数、函数返回地址等临时数据的地方。栈空间的大小是有限的,如果超过了栈空间的容量,就会引发栈溢出错误。而堆空间是用来存储动态分配的内存的地方,比如使用malloc函数来申请的内存。堆空间的大小是可变的,当程序需要更多的内存时,可以通过malloc函数来动态扩展堆空间。堆空间是公用的,多个程序可以共享同一块堆空间。如果设置了堆的空间大小,但程序没有进行malloc申请,那么当程序的栈空间超过设置的大小时,会进入堆空间。如果超过了堆空间的大小,可能会进入到全局变量区域,导致错误的发生。因此,在单片机下,合理管理堆和栈的分布是很重要的。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [stm32 堆和栈(stm32 Heap & Stack)](https://blog.csdn.net/zwj695535100/article/details/87164438)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [单片机的堆和栈(Heap & Stack)详解](https://blog.csdn.net/Emoeror_Zhang/article/details/94737249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]