我想在一个char指针数组中保存字符串。不幸的是,当我返回主程序并尝试打印数组的内容时,值' s并不像预期的那样。
我希望为所有ASCII值保存编码,以便我可以对文件进行编码。它基于霍夫曼树,但我省略了不相关的代码。
主要关注的部分
char ** encodings;
encodings = calloc(256, sizeof(char*));
walk_tree(root,)
我正在保存编码的功能
void walk_tree(struct huffnode * root, char * encoding, char ** encodingsArray)
{
if(root->is_leaf)
{
encodingsArray[root->c] = encoding;
puts(encodingsArray[root->c]) // this prints valid value
}
else
{
char temp [256]; //below is code to get the encodings, dont worry about it
strcpy(temp, encoding);
strcat(temp, "0");
walk_tree(root->left, temp, encodingsArray);
//go right
strcpy(temp, encoding);
strcat(temp, "1");
walk_tree(root->right, temp, encodingsArray);
}
}
答案 0 :(得分:0)
encodingsArray[root->c] = encoding;
-> encodingsArray[root->c] = strdup(encoding);
–́BLUEPIXY