Segmentation fault:11が出ました
構造体のnumに0を代入して構造体を返すという関数funcを使って、構造体kのnumに0が代入されて、返ってきた構造体をsに代入するというコードです。
参照しては行けないメモリ領域に対して参照した時に出るエラーということはわかりましたが、なぜこのコードでエラーが発生するのかがわかりません。
かなり初歩的な質問で申し訳ございませんが、ご教授いただきたいです。よろしくお願いします。
C
1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4 5struct _cell { 6 union { 7 int num; 8 }data; 9}; 10typedef struct _cell cell; 11typedef cell *ptr; 12 13 14ptr func(ptr p) { 15 p->data.num = 0; 16 return p; 17} 18 19 20int main(void) { 21 ptr s, k; 22 int count = 0; 23 while(count < 10) { 24 s = func(k); 25 printf("%d\n", s->data.num); 26 count++; 27 } 28 return 0; 29}
回答3件
あなたの回答
tips
プレビュー