Cのポインタについて助けが必要です。構造体が次のように作成した2つの構造体があります。
typedef struct s{
s2** d;
struct s* next;
}s;
typedef struct s2{
c* fi;
struct s2* next;
}s2;
そして、私はこのような機能を持っています:
void modify(c* a, s2* b){ //c* is a pointer to a struct
s* rd = malloc(sizeof(s);
rd->next = NULL;
//need also to initialize the field "d" of the "s" struct
}
これはエラーを生成しています。例のように、bを指す構造rdが必要です。s2はリストのようにリンクされているため、ダブルポインターを格納する必要があります。したがって、リストの最初の要素を削除できるようにするには、**ポインターが必要です。コメントでrd->d=&bのように割り当てを行っていましたが、関数のフィールド "d"を参照しようとすると、無効なメモリが読み取られ、その理由がわかりません。