c 语言中打印指针的值打印的是 OS 分配的虚拟地址的值吗?要怎么知道 OS 给这个 c 程序进程分配的虚拟地址的大小呢?

16次阅读

共计 160 个字符,预计需要花费 1 分钟才能阅读完成。

并且如何知道哪一块内存大小是可以读可以写,以避免出现下面程序的 Segmentation Fault 呢?

#include
int main(){int *p = (int *)0x1;
    printf("%pn", p);
    *p = 1;           // segmentation fault
    printf("%d", *p); // segmentation fault
}

正文完
 0