我在打印出结构成员时遇到了一些麻烦。这是我到目前为止有:打印出阵列成员的对象错误
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