struct node {
...
char *name;
...
struct node *next;
};
再帰関数の場合:
head->name = (char *) malloc(sizeof(char));
if (fscanf(fp, "id\t%d\nname\t%s\nmobile\t%lld\n", &head->id, head->name, &head->mobile) > 0) {
printf("%s\n", head->name);
それは正しいデータを保存します...仮定...
rutvik
abhinav
しかし、データを印刷するとき...
printf("%d\t%s\t%lld\n", head->id, head->name, head->mobile);
1 rutvik 9876655433
2��nav1234567789
しばらくcharポインタを脇に置いておきましょう。コードは構造体でうまく機能します
struct node {
...
char name[10];
...
struct node *next;
};
しかし、私が名前をとるときはそうではありません[20] 、それは長い長い携帯電話の価値に影響を与えます...なぜ??
出力:
1 Rutvik 9876655433
2 Abhinav 578692242758466
578692242758466は予期しないものです。