临时字符串的内存分配

Dav*_*amp 4 c++ memory-management

我有一个关于字符串的问题,或者特别是关于字符串使用的内存的问题.我正在使用MSVC2010.考虑一下这段代码:

void Test() {
    LPWCSTR String = L"Testing";
    PrintString(String);
}

void PrintString(LPWCSTR String) {
    // print String to console or similar
}
Run Code Online (Sandbox Code Playgroud)

以这种方式创建和使用字符串是否安全?当字符串超出范围时,为字符串的存储分配的内存是否被释放?

Mic*_*iak 7

是的它是安全的,但实际上没有分配;)

L"Testing"将保存在exe文件的只读部分(作为一组常量字符).LPWCSTR String只是指向它的指针,不需要销毁/取消分配