-2

Mac OSX,我正在尝试使用 tchar.h,但显然这是特定于 Windows 的。我猜这是这段代码对我不起作用的原因:

//toString

char *Node::toString(){

    char hilera[100];
    strcpy(hilera, dato->toString());
    strcat(hilera, "\n");
    return hilera;


}

所以你有什么建议?

4

2 回答 2

6

退出函数作用域hilera后将被销毁,将返回悬空指针。使用std::string,或在堆中分配内存。

于 2012-09-24T21:10:43.087 回答
4

代码不起作用的原因是它返回了局部变量的地址,这是未定义的行为。您需要动态分配一个缓冲区并返回它的地址。或者因为这是 C++,所以返回 a std::string

于 2012-09-24T21:10:34.087 回答