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();
}
原文地址:https://cloud.tencent.com/developer/article/2069301
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。