今天碰见一个让人头疼的错误,程序运行中经常会出现LoadProhibited的内存错误,经过一番观察发现是执行完cJSON的API之后再次调用JSON的API就会出问题。几经折腾,终于发现是我把(cJSON*)对象给释放(free)了。
思考了一下,cJSON的API返回的(cJSON*)指针,是指向cJSON库分配好的内存,而我越俎代庖的把这部分内存释放掉了,当然会出错了。对于(free)的使用,只能用于自己开辟过的内存,别人开辟的内存,不可随意释放。
今天碰见一个让人头疼的错误,程序运行中经常会出现LoadProhibited的内存错误,经过一番观察发现是执行完cJSON的API之后再次调用JSON的API就会出问题。几经折腾,终于发现是我把(cJSON*)对象给释放(free)了。
思考了一下,cJSON的API返回的(cJSON*)指针,是指向cJSON库分配好的内存,而我越俎代庖的把这部分内存释放掉了,当然会出错了。对于(free)的使用,只能用于自己开辟过的内存,别人开辟的内存,不可随意释放。