C语言指针指定地址?
1、我先定义一个指针,退出程序,打印出地址;2、打开程序,将地址直接赋给指针,打印地址,段错误!3、如果不加注释行代码,程序无误,增加则段错误!...
1、我先定义一个指针,退出程序,打印出地址;2、打开程序,将地址直接赋给指针,打印地址,段错误!3、如果不加注释行代码,程序无误,增加则段错误!
展开
2个回答
展开全部
首先,不能这样做,你c语言操作的地址并不是真实的地址,是操作系统从内存的某一段虚拟给你的地址,每次都不一样,每个程序所使用的内存互不干扰。
第二,而你的程序退出后,所拥有的空间就被系统全部回收了。也就不存在了。否则,你c语言乱改一通,要是改到系统正在用的内存,系统不就出现异常了吗。内存并不是由你管理的,而是操作系统管理的。
假设 a程序的 p指针,指向 0xaaa地址 ,你修改 b程序的 p指针,指向0xaaa,也是无法修改的,每个程序的内存都是系统虚拟的。保证程序可以安全稳定的执行。
第二,而你的程序退出后,所拥有的空间就被系统全部回收了。也就不存在了。否则,你c语言乱改一通,要是改到系统正在用的内存,系统不就出现异常了吗。内存并不是由你管理的,而是操作系统管理的。
假设 a程序的 p指针,指向 0xaaa地址 ,你修改 b程序的 p指针,指向0xaaa,也是无法修改的,每个程序的内存都是系统虚拟的。保证程序可以安全稳定的执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询