读取访问权限冲突。0xCDCDCD

来源:互联网 发布:java企业门户网站源码 编辑:程序博客网 时间:2024/06/14 03:53


已经一年多没有用C++了,最近厌倦了写一些垃圾App,想学一下游戏开发,于是开始复习下C。

今天在复习数据结构的链表部分时,出现了这样的一个错误:



折腾了半天,终于找到了原因,下面是链表数据结构:

typedef struct List {     List *next;     // 表的下标     int i;     // 总和结果     int sum;}List;


下面是我的新增节点部分代码和出错部分代码:

// 将计算结果存下来p3->next = (struct List *)malloc(sizeof(List));p3 = p3->next;p3->i = i;p3->sum = total;i++;

while (p2 != nullptr){     if (total - p2->sum == 400)     // 代码部分省略     p2 = p2->next;}


相信老司机一眼就能看出来,是新增节点时出的错,p3应该在分配内存时加一句

p3->next = nullptr; (nullptr为C++11标准,等于NULL)

这样就没有任何问题了,原因是,如果定义了一个指针变量而没有初始化,指针将指向一个不确定的值,这时如果对指针进行操作就会报错。

引用某大牛的话,C++是一个高冷的女神,一旦你征服了她,抛开她的外衣,也不过如此。希望持之以恒,与各位初学者共勉。