c++ - 临时字符串的内存分配

标签 c++ memory-management

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

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

void PrintString(LPWCSTR String) {
    // print String to console or similar
}

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

最佳答案

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

L"Testing"将保留在您的 exe 文件的只读部分(作为一组常量字符)。 LPWCSTR String 只是指向它的指针,不需要销毁/释放

关于c++ - 临时字符串的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18724889/

相关文章:

c++ - 在windows下用v8链接什么

Xcode 中的 C++ 单例

从 findWithinHorizo​​n 返回的 Java 大字符串转换为 InputStream

c# - 使用 DirectShow 捕获相机

c++ - 传递并调用一个成员函数(boost::bind/boost::function?)

c++ - 代码中的段错误

c++ - 在这种情况下如何使用 auto_ptr

c - 两次释放 glib 缓冲区是否安全?

swift - 如果我在 Swift 中得到一个 UnsafeMutablePointer,我应该免费打电话吗?

ios - 使用 UITextField 发布 UIViewController 时的内存问题