#include <stdio.h>
int main() {
char *ptr;
while(1){
++ptr;
printf("%p\n", ptr);
}
return 0;
}
質問:プログラムがクラッシュするまで、 ヒープを指すポインタを1バイト増加させる必要があります。Cでsegフォールトを引き起こす|ヒープスタック仮想メモリ
私は、一度に1バイトずつ、スタック内のすべてのアドレスを繰り返してsegfaultを作成しようとしています。ただし、コードは実行し続けるだけで、セグメンテーション違反は発生しません。どのように私はsegfaultを引き起こすためにそれを変更することができますか?
ポインタを逆参照することはありません。 segfaultが必要な場合は、 '*((int *)0);を実行してください。 – tkausl
逆参照されていないにもかかわらず、' ptr'がunintialisedなので*未定義の動作*です。 –
ヒープを指すポインタを使うには 'malloc()'を使わなければならないと思います。 'ptr = malloc()'は、ヒープで希望のメモリ位置を取得すると、ptrポインタでヒープにアクセスできます。 – EsmaeelE