私は、match を再割り当てして 1 つの構造体を大きくすることで、match と呼ばれる構造体の配列を変更する関数を使用しています。
match = realloc(match, (sizeof(mStruct)*num_matches+1));
構造体のプロトタイプは次のとおりです。
typedef struct{
char **names;
int score;
int diff;
} mStruct;
問題は、それぞれの char 配列の char ポインターの配列の構造体内にメモリを割り当てると、mStruct 型を返すため、char ポインターが呼び出し元の関数に返されないことです。
return match;
静的に宣言された残りの変数は、それらへの特別なポインターを必要としないため、返されます。char ポインターを返すにはどうすればよいですか?
呼び出された関数のパラメーターは次のとおりです。
mStruct* trigger(pStruct *mArr, pStruct *wArr, mStruct *match)
呼び出し関数は次のようになります
match = trigger(mArr, wArr, match);