cJSON_Delete() 和 cJSON_free()
cJSON_Delete() and cJSON_free()
我对 cJSON 库还是个新手,我不能完全理解 cJSON_Delete() 和 cJSON_free(),
的用法
- 是否有文档准确描述应该发布哪些功能,以及何时使用 cJSON_free() 以及何时使用 cJSON_Delete()。
- 什么是 cJSON_InitHooks() 目的以及如何在我的代码中使用它。
- 每次我声明一个变量时
cJSON *Variable;
我是否需要释放它以最小化内存使用量或者它会自行释放??
谢谢!!
快速浏览自述文件和头文件显示:
来自来信:没有,项目好像没有提供这样的文件。
反正不叫cJSON_malloc()
就不用叫cJSON_free()
了。它更像是一个辅助函数,可以让您调用 free()
和 malloc()
挂钩函数。
您需要为从任何分配函数(如解析器)收到的任何 cJSON 对象调用 cJSON_Delete()
。
cJSON_InitHooks()
的目的是为库提供自己的内存分配函数。如果您不想使用默认函数,或者如果您使用没有(工作)malloc()
和 free()
.
的目标,这可能会很有趣
这样的声明不会为 cJSON 对象分配内存。如果不获取这样的对象,则无法成功调用cJSON_Delete()
。例如,通过调用 cJSON_Delete()
,由解析器之一分配的内存将被释放。
看来您需要了解指针和动态内存分配才能正确使用该库。这是独立于该库的相当基本的 C 语言。
但是,阅读提供的介绍(尤其是示例),如果有疑问,来源也会有所帮助。
我对 cJSON 库还是个新手,我不能完全理解 cJSON_Delete() 和 cJSON_free(),
的用法- 是否有文档准确描述应该发布哪些功能,以及何时使用 cJSON_free() 以及何时使用 cJSON_Delete()。
- 什么是 cJSON_InitHooks() 目的以及如何在我的代码中使用它。
- 每次我声明一个变量时
cJSON *Variable;
我是否需要释放它以最小化内存使用量或者它会自行释放??
谢谢!!
快速浏览自述文件和头文件显示:
来自来信:没有,项目好像没有提供这样的文件。
反正不叫
cJSON_malloc()
就不用叫cJSON_free()
了。它更像是一个辅助函数,可以让您调用free()
和malloc()
挂钩函数。您需要为从任何分配函数(如解析器)收到的任何 cJSON 对象调用
cJSON_Delete()
。
的目标,这可能会很有趣cJSON_InitHooks()
的目的是为库提供自己的内存分配函数。如果您不想使用默认函数,或者如果您使用没有(工作)malloc()
和free()
.这样的声明不会为 cJSON 对象分配内存。如果不获取这样的对象,则无法成功调用
cJSON_Delete()
。例如,通过调用cJSON_Delete()
,由解析器之一分配的内存将被释放。
看来您需要了解指针和动态内存分配才能正确使用该库。这是独立于该库的相当基本的 C 语言。
但是,阅读提供的介绍(尤其是示例),如果有疑问,来源也会有所帮助。