当我运行我的程序时,它调用了一个具有“char *msgtype”的函数并且该函数可能工作但是当另一个函数在其中使用不同的“char *msgtype”时,当程序到达包含它的行时,程序崩溃(并且即使在第二次程序崩溃时调用了第一个函数)。问题是什么 ?
如果我在第二个函数中更改名称,它只会工作一次,再次调用该函数后程序崩溃!
void fun1(){
...
cJSON *root = cJSON_Parse(buffer);
char *msgtype = cJSON_GetObjectItem(root,"type")->valuestring;
...
free(msgtype);
cJSON_Delete(root);
...
}
void fun2(){
...
cJSON *root = cJSON_Parse(buffer);
char *msgtype = cJSON_GetObjectItem(root,"type")->valuestring;//it crashes here
...
free(msgtype);
cJSON_Delete(root);
...
}
int main(){
fun1();
fun2();//it crashes inside this function !
}