我是 C 新手,目前正在开发一个项目,我需要从 Json 文件中读取列表(使用json-c library)。因此,我创建了一个返回字符串数组(列表)的函数。我进行了搜索,发现要在函数中返回字符串数组,您需要输入以下内容:
char** readJson(...) {
...
}
主要是:
int main() {
...
char** list = readJson();
...
}
我的问题是,当我在读取函数中创建数组时,我没有声明它,而是遍历列表项(来自 json 对象)并将它们添加到列表中。例如,我不:
char** list = {"...", "..."}
我愿意:
char** list;
for (int i = 0; i < LIST_SIZE; i++) {
strcpy(list[i], json_object_get_string(json_obj));
}
当我尝试在 strcpy (在 for 循环中)之后打印列表项时,它会关闭程序。所以,我试图创建这样的数组:
char list[LIST_SIZE][MAX_CHAR];
然后返回这个:
char** final = list;
return final;
它奏效了。但是,当我返回列表时,它会在编译器中给我一个警告:
main.c:66:20:警告:从不兼容的指针类型初始化 [-Wincompatible-pointer-types]
当我尝试在 main 中打印列表时,它会崩溃。
这是源代码。如果需要,请检查它。
请帮我。