これは、どこかですでに回答されているはずの質問のようですが、満足のいくものを見つけることができないようです。とにかく、次のような関数から返す必要があります。
{ {"foo", "bar"}, {"baz", "foo"}, {"foo", "bar"} }
私は の使用に精通しており、argv
その型の意味を理解していますが、何らかの理由で上記の式の型を正しく取得できません。最も内側の部分には常に2つの文字列リテラルがあるため、どちらかのようなものだと思いました
char **s[2] or char *(*s[2])
私が求めているものでなければなりませんが、何らかの理由で、反復して使用しようとすると、順列に関係なく、常に segfault が発生しますprintf
。また、コンパイラは、互換性のないポインター型、余分な要素、および中括弧が多すぎることについて常に不平を言っています。これは現在のコードです:
char *(*s[2]) = { {"foo", "bar"}, {"baz", "spam"}, {"eggs", "ham"} };