c中跨界访问实验具体指什么?能不能详细点啊啊啊
发布网友
发布时间:2023-07-19 23:49
我来回答
共1个回答
热心网友
时间:2024-11-22 18:34
不好意思,前几天在学校,没有时间上网,希望没有耽误到回答你的问题!
C语言是门较为自由的程序设计语言,他对运行时的错误检查不是非常多(事实上几乎没有)
这样就提高了程序的运行时效率,不过这样做的代价就是程序的安全性大打了折扣,
我们知道,程序设计的主要对象是内存和处理器,我们的程序不能对处理器造成太多的“效果”,
我们的大多数操作都是相对是存储器而言的,那么对内存管理就是重点中的重点
好了,绕远了,现在绕回去....
跨界访问,实际上就是访问一个没有访问权限的存储单元的操作,但是为什么访问存储单元会出错,这就和操作系统的内存管理有关系了,不同的操作系统有着不同的操作,例如windows是返回一个运行时错误(就是令C程序员谈之色变的“某某内存的不可写入”错误)。
你所说的实验,是不是想证明这个操作的正确性与否?如果这想做这个实验,操作很简单。只需要一个指针就可以了。先让指针指向一个栈上变量,输出这个值,改变他,在输出。再随机地赋一个值给指针,输出他的值,之后改变,再输出。就可以了。这时,如果运行程序,程序会出现一个运行时错误。如果单步调试这个程序,会返现错误出现在最后的一个指针赋值操作上。这就说明,这是对指针的操作就是非法的,也就是越界访问现象。
希望我的回答可以帮助到你,如果还有疑问,请继续提问。
另外提示一下,问题分类放错了来自:求助得到的回答