为什么访问越界了没有收到SIGSEGV信号?
const int K = 1024;
int i = 0;
char *p = new char;
while(i++ < 20)
{
p = p + i * K;
*p = 'A';
printf("p = %c(%0x), i = %d.\n", *p, p, i);
sleep(1);
}
delete p;
p = NULL;
要循环15次才收到SIGSEGV信号。也就是说越界了15K才会收到段错误的信号。一页4K大小,好像跟书本上说的内存管理有冲突啊?谁能解析一下?