解决:引发了异常: 读取访问权限冲突。 L 是 0xCDCDCDCD。

在数据结构写链表的时候,出现了这个问题:
解决:引发了异常: 读取访问权限冲突。 L 是 0xCDCDCDCD。_第1张图片

即本质是:内存访问问题

表现为:

  • 数组越界
  • 对于分配到的空间,未进行预处理 (本人也是遇到的这个问题)
  • 空指针,指针越界

解决方式

与上文所写一一对应:

  • 检查是否越界
  • 对于申请到的空间,是否给了默认值
  • 指针是否越界

对我这问题是这样的,因为这里是通过判断,链表有没有下一个节点的while循环。即判断其是不是none
解决:引发了异常: 读取访问权限冲突。 L 是 0xCDCDCDCD。_第2张图片
原本以为在申请到的结构体空间时,其元素会自动赋值为None,故在使用时,对于其也就没有处理。
解决:引发了异常: 读取访问权限冲突。 L 是 0xCDCDCDCD。_第3张图片

  • 这里判断是不为空的,即是有地址的。
  • 这里是判断到最后一个结点了,我本以为最后一个结点的next,在我没有使用之前,其为空,
  • 可结果并不然
  • 也就说,在这个变量在未使用之前,其地址并没有被初始化为空,而是有值。
  • 固然就会导致内存访问错误
  • 解决办法,就是对于其最终的next手动赋值None
    解决:引发了异常: 读取访问权限冲突。 L 是 0xCDCDCDCD。_第4张图片
    完成:
    解决:引发了异常: 读取访问权限冲突。 L 是 0xCDCDCDCD。_第5张图片
    最近在做c语言的数据结构,关于本文的代码,见:数据结构专栏

你可能感兴趣的:(C:从入门到放弃,数据结构,数据结构,指针,链表,算法,内存管理)