非法内存访问
发布时间: 2023-11-26 22:21:17
这有好几种情况,常见的是C系统安排内存的有些区域是不能写数据的,如果代码误操作向这些保留区域写数据就要产生非法访问错误;有些区域即使读取也是不可以的,也会产生上述错误。
② c语言, 运行的时候内存访问非法 求解答
不是很看得懂,你写的东西。
我觉得,首先既然是动态的结构体数组,那么头指针应该分配一个空间吧,然后要吧创建学生表和初始化化分开,创建是返回一个空的,可供增加的东西,而初始化是新增节点,并连上去。最后要么老老实实代指针进行传址,要么直接返回指针。
上面空话,也许没有问题,我觉得问题出在del函数,按理说,一个链表带头指针进去删了就完了,就只是修改一下指针的指向,然后释放就行了,基本不存在什么好说的。
其实如果不熟练,大可不必动态分配,就静态的数组,每个节点加一个int cur;这个cur对应下一个数组元素的下标,这样方便又好理解,当增加时就在末尾增加,只需要修改cur就行,而删除同理,插入删除的确不方便,会浪费空间,但是一个小程序要多少空间?如果数组不够了,就realloc呗!虽然不太安全,也没事,用结构体弄链表真是太折磨人了
其实,主要是没数据,不然还可以试着调试看看,自己写的最好好事自己调试,找不出问题,就一个函数一个函数的检查,这样就能万无一失了
③ c语言。为什么计算机有足够的内存空间,却还要提醒我们一些代码做了一些非法内存访问
内存空间足够和非法内存访问二者有什么联系么。。
内存的非法访问,就是指应用程序试图访问一块不受系统管理的内存区域。一般有两种情况,第一种是访问越界,是指应用程序申请分配了内存,但是访问超出了申请的范围;第二种是无效访问,包括 有申请内存直接访问和犹豫程序漏洞导致访问无效的指针地址。
还有什么内存泄漏,内存溢出等意思都是不一样的。
热点内容