C 位于的映射区域的权限不正确

C 位于的映射区域的权限不正确,c,segmentation-fault,C,Segmentation Fault,当我尝试这样做时,我会犯错误。如果我使用valgrind跟踪错误,我会收到消息“映射区域的权限不正确”。这是什么意思 int *p; p = (int *) f // f is a function *p = 0x1234; (我假设您的意思是*p=0x1234;而不是*ptr)。您无法更改函数的地址,因为它位于只读内存中。(我假定您的意思是*p=0x1234;而不是*ptr)。无法更改函数的地址,因为它位于只读内存中。所有代码都位于标记为只读(和执行)的内存段中。所有代码都位于标记为只读

当我尝试这样做时,我会犯错误。如果我使用valgrind跟踪错误,我会收到消息“映射区域的权限不正确”。这是什么意思

int *p;

p = (int *) f // f is a function

*p = 0x1234;

(我假设您的意思是
*p=0x1234;
而不是
*ptr
)。您无法更改函数的地址,因为它位于只读内存中。

(我假定您的意思是
*p=0x1234;
而不是
*ptr
)。无法更改函数的地址,因为它位于只读内存中。

所有代码都位于标记为只读(和执行)的内存段中。

所有代码都位于标记为只读(和执行)的内存段中