求高手解答!这段代码为什么编译会段错误?

2025-04-25 16:45:11
推荐回答(1个)
回答1:

PROT_WRITE

#include 

#include 

#include 

#include 

int main()

{

        int *p=mmap(

                NULL,

                getpagesize(),

                PROT_READ|PROT_WRITE,

                MAP_ANONYMOUS|MAP_SHARED,

                0,0);

        *p=20;

        *(p+1)=30;

        *(p+2)=40;

        printf("%d\n",*p);

        return 0;

}

 必须要加一个PROT_WRITE。页可以被写入。否则*p=20;会报段错误。