cjson中的malloc

发布于 2020-07-01 14:55:23

用的IAR 8.40.
今天突然想起来,用了CJSON软件包,但是CJSON的分配内存的函数没有换成rt-thread的rt-malloc,按说不换也能用,但是,链接文件里,define symbol ICFEDIT_size_heap = 0x0000;

这就很奇怪,CJSON还能正常运行。

这是为什么?
难道编译器在什么地方把malloc换了?rt-thread的软件包,有很多都涉及到分配内存,都要把malloc换成rt-malloc吗?

查看更多

关注者
0
被浏览
138
DCUU_8834
DCUU_8834 2020-07-02

在cJSON_port.c下,这个函数

int cJSON_hook_init(void)
{
    cJSON_Hooks cJSON_hook;

    cJSON_hook.malloc_fn = (void *(*)(size_t sz))rt_malloc;
    cJSON_hook.free_fn = rt_free;

    cJSON_InitHooks(&cJSON_hook);

    return RT_EOK;
}
INIT_COMPONENT_EXPORT(cJSON_hook_init);
4 个回答
aozima
aozima 2020-07-01
libc目录中有对接
zhangjun
zhangjun 2020-07-01
在mem_std.c中,rt-thread重实现了malloc并定向到了rt_malloc
xddl00
xddl00 2020-07-01
但是,我的工程并没有包含任何的libc目录下的文件呀

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友