问题来源:
在写二叉树序列化与反序列化时发现序列化函数为char* Serialize1(TreeNode *root) 其函数返回类型为char*,但是我在实现的过程中为了更方便的操作添加字符串使用的是C++中string类型的变量,这就导致我最后得到的结果res是string类型,若是要返回需要转化为char *类型。而等我将string类型转为char*后返回在主函数中就成了乱码。
先直接说最后的解决办法:
第一种:定义一个char数组,数组长度为stringlength+1,将string的内容依次赋值给char数组,最后加上' ' ,然后返回char数组名就行了。
第二种:将string定义为类的成员变量
就贴第一种方法的代码
char *result = new char[res.length() + 1]; //定义需要返回的result对象 for (int i = 0; i < res.length(); ++i) { result[i] = res[i]; //将string类型的res内容都放到result内 } result[res.length()] = '