前提・実現したいこと
何かを作るというわけではなく、学習の中で以下のソースコードでエラーが出る理由を問われたのですが分かりません。
ポインタについてはいくらか勉強したのですが、作ったポインタpにpで値を間接的に代入したら、その値にpが指す変数は変わるのでprintfにpを渡せば出力されると思っていました。以下のソースコードでSegmentation faultが出る理由を教えてください!
発生している問題・エラーメッセージ
$ ./a.out *p = e5894855 Segmentation fault
該当のソースコード
#include <stdio.h> #include <unistd.h> #include <stdlib.h> main(){ int *p; p = (int *)main; printf("*p = %x\n",*p); *p = 0x1234; printf("*p = %x\n",*p); return 0; }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/07/14 16:24