-1

このコードについて警告を受けました。

Warning { 

` del2_.c: In function ‘addIntoCell’:`

  `del2_.c:401:3: warning: passing argument 1 of ‘resizeArray’ from incompatible pointer type [enabled by default]`

  `del2_.c:378:6: note: expected ‘struct t_grapheVertex ***’ but argument is of type ‘struct  t_grapheVertex **`

}

これは私が関数を定義する方法です: void resizeArray(t_grapheVertex ***ele)

関数を呼び出すときの警告は次のとおりです。 resizeArray(&(*cell)->elements);

そして、これはセルの構造です:

typedef struct st_cell
{
    int nbElements;
    struct st_cell* next;
    t_grapheVertex* elements;
} t_cell;


void resizeArray(t_grapheVertex ***ele){
    t_grapheVertex *temp;
    int newSize;
    newSize = arraySize*increaseRate ;
    temp = realloc(*ele , sizeof(int)*newSize);
    if(**ele == NULL)
    {
        printf("fail to resize\n");
        return;
    }
    else
    {
        printf("resized succesfully\n");
        **ele=temp;
        arraySize = newSize ;
    }
}
4

1 に答える 1

2

(*cell)->elements はポインタを与え、次にアンパサンドはdoubleポインタを与えます。同時に、resizeArray() 関数でトリプルポインターを期待していますが、これは本当ですか?

可能であれば、resizeArray のコードを共有していただけますか?

于 2013-09-25T21:15:06.490 に答える