我有两个结构和一个函数
struct nodeT {
bool last;
string attribute1;
string attribute2;
string attribute3;
vector<charT> leafs;
};
struct charT {
char character;
nodeT *next;
};
void addNode(nodeT *n, string stringy, string &attribute1, string &attribute2, string &attribute3)
{
if (stringy=="") {
w->last=true;
return;
} else {
if (n->last==true) {
attribute1=n->attribute1; //these attribute fields were given values earlier
attribute2=n->attribute2;
attribute3=n->attribute3;
}
addNode(n, stringy.substr(1), attribute);
}
}
并被addNode
称为
string test="";
addNode(root, "wordy", test, test, test);
问题是属性引用string &attribute
没有更改为 5,它继续使用该""
值进行下一次调用。
我试着让它成为一个指针引用*attribute->n->attribute
并绑定一个引用&attribute = n->attribute
这些是在黑暗中拍摄的,没有用。
编辑:addNode
应该用单独的内存引用调用。
string test1="";
string test2="";
string test3="";
addNode(root, "wordy", test1, test2, test3);