私は2つの構造体と関数を持っています
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);