这个读取访问权限冲突怎么修改?

萌新第一次写个寻路的,一直不能初始化,提示child指向parent时0xCDCDCD TreeNode* pNew = new TreeNode; //创建一个新节点为出库点 TreeNode* pout = new TreeNode; pout->pos = outPos; //新节点成为树根 //pRoot一直指向树的根节点 TreeNode* pRoot = new TreeNode; //新节点用来记录起点 pRoot->pos = begPos; pRoot->pParent = pout; //6 设定一个动态数组用来存储需要比较的节点 vector buff; //7 寻路 TreeNode* pCurrent = pRoot; TreeNode* pChild = NULL; //准备两个迭代器计算最小f值 vector::iterator it; vector::iterator itmin; while (1) { //7.1 找到当前点周围能走的点(并计算g值) for (int i = 0; i < 4; i++) { pChild = new TreeNode; pChild->pos = pCurrent->pos; switch (i) { case p_up: if (pChild->pos.row == pChild->pParent->pos.row) 求大佬们指点

你在使用pParent时,都要检查一下pParent是否为空,并且每个node的pParent要初始化为空。你这个错误的原因应该是某个节点的pParent没有初始化就直接使用,会出现0xCDCDCD这样的地址

没看到定义 TreeNode结构体的代码呢。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632