1

C++ でスコープがどのように機能するかについて、少し混乱しています。今のところ、else ステートメント内で finalStr が作成され、スコープを離れるとすぐに破棄されるようです。

std::string finalStr;
char curLine[128];
if( BINARY_ASCII == 1 ) //ignore this case please :D
{
    cdata = convertBSTRToByteArray(data , numChars);
}
else
{
    bstrInputString = ( LPCWSTR ) data;

    std::strcpy(curLine, bstrInputString.operator char *());
    std::string finalStr(curLine);

    cout << "data is: " << finalStr.data() << "\n"; //prints the right string
}

cout << "string is: " << finalStr.data() << "\n"; //prints nothing except "string is: "

どうすればこれを修正できますか? 文字の配列をコピーするには、else ステートメントにそのコピー コンストラクターが必要だと思います。これを回避する方法はありますか?読んでくれてありがとう..

4

4 に答える 4