void TestSegFunction(void)
{
int i = 0;
char *str = "\"{\"loop_number\":1}\""; // line 410
char *str = "{\"loop_number\":1}"; // line 411
json_object *pstObj = NULL;
json_object *sonPstObj = NULL;
pstObj = json_tokener_parse(str); // line 414
if (NULL == pstObj)
{
printf("%s : json_tokener_parse failed.\n", __FUNCTION__);
}
else
{
json_object_object_foreach(pstObj, key1, val1)
{
if (0 == strcmp(key1, LOOP_NUMBER))
{
i = json_object_get_int(val1);
printf("i = %d\n", i);
}
}
}
}
如第410行和第411行所示,如果使用410行代码,414行函数调用会出现段错误。如果使用411行代码,414行不会出错,因为这个函数被别人调用了,可能会输入错误字符串。我不想看到段错误来停止程序。有什么办法可以避免这种段落错误?