我是 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。我究竟做错了什么?