Mac OSX,我正在尝试使用tchar.h,但显然是Windows特有的。而且我猜这是因为这段代码不适合我:
//toString
char *Node::toString(){
char hilera[100];
strcpy(hilera, dato->toString());
strcat(hilera, "\n");
return hilera;
}
那么,你有什么建议?
答案 0 :(得分:6)
退出函数作用域hilera
后将被销毁,将返回悬空指针。使用std::string
,或在堆中分配内存。
答案 1 :(得分:4)
代码不起作用的原因是它返回局部变量的地址,这是未定义的行为。您需要动态分配缓冲区并返回其地址。或者因为这是C ++而是返回std::string
。