stm32中用cjson的内存问题
这个问题,我改了几天的bug,原来是 分配给json的内存少了,因为我发现代码cJSON_CreateObject()在创建对象之后就没反应了,问了博主说是内存的问题,然后到网上找果然也有人出现这些问题,所以只需要把分配的内存改大了就没事了,在启动文件里面找到Heap_Size然后把他改大,我用的是原子的代码,原本是写着0x200,后面改成0xC00还是不行,就怀疑是不是不是内存的问题,最后看了很多文章,他们都改成0x1000,然后就可以了,如果你写cjson内容(键值)比较多的话,如果出现问题应该把内存改的比这个更大
然后看了那么多文章,他们有的出现bug是因为没有释放内存导致,就是free(xx),要释放内存,还是出现bug的话得把cjson.c里面的malloc和free改成开发板自带的;上面这两个我都改过,因为我是原子的板子,他自带的malloc和free函数的参数有两个,其中一个的话要知道自己所用到的内存块,但是cjson.c的malloc和free只有一个参数,所以改起来很难,所以就放弃了
如果你要改的话要全部对应的改,不是只改这个地方而已
可参考本文了解内存溢出和泄漏https://blog.qiquanji.com/mip/post/7868.html
微信扫码关注
更新实时通知