萌新第一次写个寻路的,一直不能初始化,提示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) 求大佬们指点
3条回答 默认 最新
- CSDN专家-link 2021-05-16 06:54关注
你在使用pParent时,都要检查一下pParent是否为空,并且每个node的pParent要初始化为空。你这个错误的原因应该是某个节点的pParent没有初始化就直接使用,会出现0xCDCDCD这样的地址
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报