0

選択した単語のポインターを入力配列 (allTerms) から最終的に返す配列 (myTerms) に動的に追加する関数を作成しようとしています。ポインターは allWords 配列内のさまざまな単語を指し、関数 (isTermNeeded) に基づいて、含まれる単語が選択されます (allWords へのポインターとして)。myTerms にポインターを割り当て、それが機能するのに十分なスペースを割り当てるにはどうすればよいですか?

これが私が問題を抱えているスニペットです:

myTerms    = (char **)realloc(myTerms, (c+1)*sizeof(char *));
myTerms[c] = allTerms[i];

そして、ここに完全な機能があります:

char **getMyTerms(char **allTerms, char info[])
{
    int     i   =   0,
            c   =   0; // amount of terms selected

    char **myTerms; // array of selected terms

    while (allTerms[i])
    {
        if (isTermNeeded(allTerms[i], info))
        {
            myTerms     =   (char **)realloc(myTerms, (c+1)*sizeof(char *));
            myTerms[c]  =   &allTerms[i];

            c++;
        }

        i++;
    }

    return myTerms;
}

そして、ここに私が得ている警告があります:

term.c:95:15: warning: incompatible pointer types assigning to 'char *' from 'char **'; remove & [-Wincompatible-pointer-types]
                        myTerms[c]      =       &allTerms[i];
                                        ^       ~~~~~~~~~~~~
1 warning generated.
4

1 に答える 1