現在『詳説Cポインタ』を読んでおり、その途中で1つ疑問が出てきたので質問をします。
p.168にてEmployee構造体
C
1typedef struct _employee{ 2 char name[32]; 3 unsigned char age 4}
へのポインタemployeeを宣言し、リンクリストで作ったスタックから
C
1employee = (Employee**)pop(stack)
として、データを取り出しています。
popはstackが空の場合NULLを返します。
3つのEmployee型のデータをpushし、for文で4回上記の式を実行して
C
1printf(″Popped %s¥n″, employee->name)
とすると、
Popped 名前1
Popped 名前2
Popped 名前3
Popped (null)
となるのですが、下のようなプログラムを書くとSegmentation fault(コアダンプ)になります。
何が違うんでしょう?
C
1int main(void) 2{ 3 Employee *employee = NULL; 4 printf(″employee : %s¥n″, employee->name); 5 return 0; 6}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/20 09:44