C语言通过指针修改原地址值时显示读取权限冲突。

图片说明图片说明图片说明

如图,ace已经在main函数之前定义,单纯输出p_ad可以正常输出ace的地址;但是,对p_ad解引用或企图通过指针修改ace的值得时候就会抛出异常。

问题的解决方法是需要在main函数中声明fun函数,然后在添加extern int ace声明变量

你在fun里又写了
int ace;
你后面访问的不是全局变量的ace,.而是这个局部变量ace
最后你试图把局部变量返回,局部变量在堆栈上,函数退出,地址就无效了