前提・実現したいこと
ここに質問の内容を詳しく書いてください。
C言語で一番シンプルな構造体リストを実現しようとしているのですが、できずに困っています。
発生している問題・エラーメッセージ
エラーメッセージ
Segmentation fault (core dumped)
該当のソースコード
C言語
#include <stdio.h>
#include <malloc.h>
typedef struct _Node {
int x;
struct _Node *next;
} Node;
Node *gen_node(void);
int main(void){
printf("flag0");//デバッガ
Node *head, *p;
// headはリストの先頭を,pは新規ノードを指す
printf("flag1"); //デバッガ
// リストの作成
head=NULL;
while(p=gen_node(),scanf("%d",p->x)!=EOF){
printf("flag2"); //デバッガ
p->next=head; // 新規ノードのnextは,これまでのリストの先頭を指す
head=p; // リストの先頭を新規ノードに更新
}
printf("flag3"); //デバッガ
// リストの表示
p=head;
while(p!=NULL){
printf("%d\n",p->x);
p=p->next;
}
return 0;
}
Node *gen_node(void)
{
return (Node *)malloc(sizeof(Node));
}
//実行時には、このプログラムをexeとおいて、
./exe < test.txt
でtest.txtを読み込ませた。
test.txtは以下の通り。
1
4
6
8
9
11
13
16
21
22
27
28
31
35
37
39
41
44
48
試したこと
printf("flag")を入れてまずどこがエラーの原因になっているか絞ろうとした。
結果 → mainの一番最初に入れたflag0も表示されないので、もはやどこに問題があるのかもわからない。
補足情報(FW/ツールのバージョンなど)
CentOS Linux 7を使っています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/10 09:36
2019/12/10 09:39
2019/12/10 09:40