Есть структура
node
. В цикле создается корневая структура. По условию к ней добавляется дочерняя. Память под структуры не выделялась, но каким-то образом
result
содержит структуру
child
, хотя она должна была удалиться после выхода из
if
.
struct node {
string tag;
unordered_map<string, string> attr;
string getAttr;
int number = 1;
int curNumber = 0;
node *child;
bool firstDepth = false;
};
unordered_map<string, node> parseQuery(vector<string> query) {
unordered_map<string, node> result;
node *curNode;
for (auto const &q : query) {
node root;
curNode = &root;
if (sw != "firstDepth") {
//?????????
node child;
curNode->child = &child;
curNode = &child;
sw = "tag";
}
result.insert(pair(keyName, root)); // c emplace не получилось
}
return result;
}