我试图从我的树结构中获取所有叶节点。代码来自ue4,所以只需要对待" TArray"像一个普通的std :: Vector。
TArray<BSPNode *> * BSPNode::getLeafNodes()
{
TArray<BSPNode *> * collected = new TArray<BSPNode*>;
collectLeafNode(collected);
return collected;
}
void BSPNode::collectLeafNode(TArray<BSPNode *> * leafNodes)
{
if (leftNode == nullptr && rightNode == nullptr)
{
if (leafNodes != nullptr)
{
if (this != nullptr)
leafNodes->Add(this);
}
return;
}
if (leftNode != nullptr)
leftNode->collectLeafNode(leafNodes);
if (rightNode != nullptr)
rightNode->collectLeafNode(leafNodes);
return;
}
调试器显示访问冲突出现在
中 if (leftNode == nullptr && rightNode == nullptr)
调试器输出:
callstack第95行是if (rightNode != nullptr)
第82行if (leftNode == nullptr && rightNode == nullptr)
和variables。
我完全不知道为什么程序崩溃,是否与使用&#34;这相关&#34;指针?提前致谢 :)。