我在打印出結構成員時遇到了一些麻煩。這是我到目前爲止有:打印出陣列成員的對象錯誤
struct Code
{
char letter;
string sequence;
}
void createCode(HuffmanNode *root, string codestr, Code *codeBook, int count)
{
if(root->getRight() == NULL && root->getLeft() == NULL)
{
Code code;
code.letter = root->getLetter();
code.sequence = codestr;
codeBook[count] = code;
count++;
}
else
{
createCode(root->getLeft(), codestr + "1", codeBook, count);
createCode(root->getRight(), codestr + "0", codeBook, count);
}
}
這工作都正常,但主當我試圖打印出來的成員序列在我的代碼的數組中的碼本:
string codestr;
count = 0;
Code codeBook[256];
createCode(root, string codestr, codeBook, count); //root is already created
for(int i = 256; i >= 0; i--)
{
if(isalpha(codeBook[i].letter))
cout << codeBook[i].sequence << " ";
}
只有最後我存儲的字符串被打印。可能有人知道一個修復程序,爲什麼會發生這種情況?如果有人能夠幫助,那會很棒!
感謝您的支持!我只是解決了這個問題,但它仍然沒有正確打印......任何其他提示? – user200081
你應該通過引用 – billz
通過countCode創建代碼啊,這是完美的工作。謝謝! – user200081