【BUG记录】引发了异常: 读取访问权限冲突

项目场景:

调用双向链表插入函数

//在表中第3的位置插入元素7
	head = insertLine(head, 7, 3);

问题描述:

调用插入函数时,在data中输入数据,add中输入插入位置

当add的实参大于双向链表的原本内存大小,就会出现越界的情况

line * insertLine(line * head,int data,int add)

例如

//原链表结点数小于10000
line * insertLine(head,5,10000)

就会有如下报错


原因分析:

用线性表的顺序结构(顺序表、队列、栈,数组)存储数据时,如果读取(操作)数据的位置超出了当前数组(顺序表、队列、栈)的长度,就会出现数组访问越界的情况,并且报错“引发了异常: 读取访问权限冲突”


解决方案:

点击编译器的“调用堆栈”查看异常并且找到异常代码行数

检查操作数组位置和当前数组的原有长度是否冲突

经验分享 程序员 微信小程序 职场和发展