zhao.zhao 发表于 2018-6-1 11:49
是堆空间不够大
可是我由0x200增加到0x400还是不行?难道再增大一点?
andeyqi 发表于 2018-6-1 11:49
不用太纠结这种概念性的东西,我说的BSS段指的是malloc对应的空间所谓的堆空间。 ...
哦,好的,因为我对这些都不太明白,所以问的比较细,您别介意。
要不,直接定义一个变量,RecordStruct OutData; 不要用指针了,肯定没问题
zhao.zhao 发表于 2018-6-1 12:04
要不,直接定义一个变量,RecordStruct OutData; 不要用指针了,肯定没问题
因为我后续的函数参量都是指针类型,如果这样改,就得大改了,
您看下面这样改,行吗:
RecordStruct *OutData ,data;
*OutData = &data;
RecordStruct *OutData ,data;
OutData = &data;
我觉得应该这样,可否?
先不说应该怎样做,我的疑问是,如果没有设置单字节对齐,你这个结构无论增加一个还是减少一个,都是60个字节,所以不应该出现你加多一个就挂了
Inc_brza 发表于 2018-6-1 13:34
先不说应该怎样做,我的疑问是,如果没有设置单字节对齐,你这个结构无论增加一个还是减少一个,都是60个字 ...
是的,我没有设置单字节对其,我也不知道怎么设置,这个函数malloc是我直接调用的,所以出现这个问题,我也不知道怎么改?
你有没有试着调整一下结构体内成员的顺序?
watercici 发表于 2018-6-1 13:47
是的,我没有设置单字节对其,我也不知道怎么设置,这个函数malloc是我直接调用的,所以出现这个问题,我 ...
如果可以,上传一下你的代码demo,如果你用lib里的malloc,heap_init这个函数有没有调用,如果没有,你单纯设置startup中的configuration是没用的。
lilei900512 发表于 2018-6-1 14:06
你有没有试着调整一下结构体内成员的顺序?
这个顺序我认为是最佳的了,就是根据偶数字节的顺序安排下来的