lvpeng-1619958 发表于 2018-6-1 11:36
堆太小了吗?不会刚好差一个u8的大小吧?!
不是堆小的问题,因为我增大了也不行?
watercici 发表于 2018-6-1 11:38
还有我想问一下,malloc和BSS断没有关系吧,不是应该和堆有关系吗,因为我刚刚在网上看到的,BSS断不是与 ...
malloc分配的在堆当中,跟bss没有关系。程序编译完成 bss段就产生了,malloc运行之后才分配内存
watercici 发表于 2018-6-1 11:35
那我怎么看跟踪malloc这个函数呢,或者怎么看它的返回值,因为我找不到malloc这个函数的定义,但是我可以 ...
malloc不是在系统C库#include <stdlib.h>里面吗,没有源码先DEBUG时看下返回值看看是多少
watercici 发表于 2018-6-1 11:38
还有我想问一下,malloc和BSS断没有关系吧,不是应该和堆有关系吗,因为我刚刚在网上看到的,BSS断不是与 ...
BSS段难道不就是堆栈段吗
andeyqi 发表于 2018-6-1 11:42
BSS段难道不就是堆栈段吗
bss段在ram中啊,和栈是分开的
andeyqi 发表于 2018-6-1 11:42
BSS段难道不就是堆栈段吗
好像不是,我在网上查的他俩应该不是一个
可能栈空间不够大
本帖最后由 andeyqi 于 2018-6-1 11:51 编辑
watercici 发表于 2018-6-1 11:43
好像不是,我在网上查的他俩应该不是一个
不用太纠结这种概念性的东西,我说的BSS段指的是malloc对应的空间所谓的堆空间。
是堆空间不够大
andeyqi 发表于 2018-6-1 11:40
malloc不是在系统C库#include 里面吗,没有源码先DEBUG时看下返回值看看是多少...
关键是就是这里的问题,一执行到这里就进入中断了,无法查看返回值,如果有返回值,也就不会进入中断了。我知道是这里的问题,但是我不知道是什么原因,不知道怎么改。堆的大小增大了也没有用,还是会进入硬件中断。