1

私は、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);
4

0 に答える 0