これは非常に単純な問題のようですが、どの部分が原因であるかを完全に把握することはできません。基本的に、文字列の配列だけを含む構造体があります
struct command_stream{
char **tokens;
};
typedef struct command_stream *command_stream_t;
command_stream_t test;
その後、いくつかの文字列をより短い文字列に解析し、最終的に別の文字列の配列になります
char **words = *array of strings*
単語には必要な正しい情報が含まれています。各要素をループして印刷し、文字列に誤りがないことを確認しました。だから今私はトークンを単語に向けるだけです
test->tokens = words;
しかし、それは私にセグメンテーション違反を与えます。理由はわかりませんが。それらは両方ともポインタなので、明らかな何かを見逃していない限り...
編集:関数は全体としてポインタを返さなければならないので、このように設定されましたが、私は忘れ続けています。しかし、新しいtypedefを作成するだけで、私はそれを持っていると思います
typedef struct command_stream command_stream_s;
command_stream_s new_command_stream;
&new_command_stream;を返すだけです。それは正しく機能するはずですか?new_command_stream自体はポインタではありませんが。