C++ 指针传递是有问题吗? 为啥语言传达不了信息
1. 调用前后 指针的地址是没有变化的
2. eeeeeeeeeeee
Status PlanNode::CreateTreeHelper(FragmentState* state,
const std::vector<TPlanNode>& tnodes, PlanNode* parent, int* node_idx,
PlanNode** root) {
// propagate error case
if (*node_idx >= tnodes.size()) {
return Status("Failed to reconstruct plan tree from thrift.");
}
const TPlanNode& tnode = tnodes[*node_idx];
int num_children = tnode.num_children;
PlanNode* node = NULL;
RETURN_IF_ERROR(CreatePlanNode(state->obj_pool(), tnode, &node));
if (parent != NULL) {
parent->children_.push_back(node);
} else {
*root = node;
}
for (int i = 0; i < num_children; ++i) {
++*node_idx;
RETURN_IF_ERROR(
CreateTreeHelper(state, tnodes, node, node_idx, nullptr));
// we are expecting a child, but have used all nodes
// this means we have been given a bad tree and must fail
if (*node_idx >= tnodes.size()) {
return Status("Failed to reconstruct plan tree from thrift.");
}
}
// Call Init() after children have been set and Init()'d themselves
RETURN_IF_ERROR(node->Init(tnode, state));
return Status::OK();
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。