-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++ であるため、std::string代わりに a を返します。

于 2012-09-24T21:10:34.087 に答える