私はCを初めて使用します。構造体リストを関数に渡そうとしており、その関数内でリストに入力します。コードは次のとおりです。
#include <stdio.h>
#include <stdlib.h>
struct Abc {
int test;
struct Abc *next;
};
void demo_fill(struct Abc *data);
int main(int argc, char **argv) {
struct Abc *db = NULL;
demo_fill(db);
printf("%d\n",db->test);
return 0;
}
void demo_fill(struct Abc *data) {
int i;
for( i = 0; i < 5; i++ ) {
struct Abc *new;
new = malloc(sizeof(struct Abc));
new->test = i;
new->next = data;
data = new;
}
}
これを実行すると、最初の要素を印刷しようとしたときに構造体がまだNULLであるため、「セグメンテーション違反(コアダンプ)」エラーが発生します。私は何が間違っているのですか?