这似乎是一个非常简单的问题,但我无法弄清楚是哪个部分导致了它。基本上,我有一个结构,它只包含一个字符串数组
struct command_stream{
char **tokens;
};
typedef struct command_stream *command_stream_t;
command_stream_t test;
稍后,我将一些字符串解析为较短的字符串,最后得到另一个字符串数组
char **words = *array of strings*
words 包含我想要的正确信息,我循环并打印出每个元素以确保我没有得到错误的字符串。所以现在我只是将标记指向单词
test->tokens = words;
但它给了我一个分段错误。我不确定为什么。它们都是指针,所以除非我遗漏了一些明显的东西......
编辑:作为一个整体的函数必须返回一个指针,这就是为什么它是这样设置的,我一直忘记。但我想我已经明白了,如果我只是创建一个新的 typedef
typedef struct command_stream command_stream_s;
command_stream_s new_command_stream;
并返回 &new_command_stream; 那应该有效吗?即使 new_command_stream 本身不是指针。