`

unique_ptr+char*

 
阅读更多
int len1 = 6;
unique_ptr<char[]> bbc1(new char[len1]{0});
cout << "bbc1:" << bbc1.get() << endl;
char *abcd = bbc1.get();

unique_ptr<string> bbc2 = make_unique<string>("abcde"); 
cout << "bbc2:" << bbc2->data() << endl;

 

分享到:
评论

相关推荐

    C++智能指针-unique-ptr智能指针详解.pdf

    《C++智能指针——unique_ptr智能指针详解》 智能指针是C++中用于自动管理动态分配内存的一种工具,它可以确保在适当的时候自动释放内存,从而避免内存泄漏的问题。其中,`unique_ptr`是一种特殊的智能指针,它拥有...

    cpp代码-test unique_ptr

    int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } ``` `README.txt`文件可能包含关于测试的说明和运行测试的命令。在实际项目中,可能会使用诸如`CMake`或...

    VisualC++(VC++)编程序软件语言关键字大全集合参考.pdf

    除了上述列出的关键字,还有一些其他的如`asm`(已过时)、`auto`(自动推断变量类型)、`break`、`catch`、`char`、`class`、`const`、`const_cast`、`continue`、`default`、`delete`、`deprecated`、`do`、`...

    Windows平台c++工程base64与二进制文件相互转化

    std::unique_ptr&lt;const char*&gt;p(new const char*(readfile64("{\"filename\":\"D:\\\\job\\\\greatwall\\\\test\\\\1.jpg\"}"))); if (!*p.get()) return -1; int len = strlen(*p.get()); printf("%s\n",*p.get...

    C/C++/C++11软件测试实例

    为了避免这类问题,可以使用`boost::scoped_array`或`std::unique_ptr`。 #### 4. **条件总是正确的** 在`WinDjView`这款DjVu文件查看器中,有一个条件判断总是正确的错误: ```c++ inline bool IsValidChar(int ...

    精通C++内存管理,可以看看

    在这个修正后的版本中,`std::unique_ptr&lt;char[]&gt;`自动管理`char[]`数组的生命周期,当`myfunction`结束时,`p`对象被销毁,其析构函数会自动调用`delete[]`来释放内存,无论`getstringfrom()`是否成功。 ### 总结 ...

    C++函数间动态内存的传递----论文

    std::unique_ptr&lt;char[]&gt; result(new char[size]); memset(result.get(), 0x00, size); if (size &gt;= 13) { strcpy(result.get(), "Hello World!"); } return result; } int main() { auto pMyReturn = ...

    ptr.zip_ptr

    为了防止空指针引用和未初始化的指针带来的问题,C++11引入了智能指针(`std::unique_ptr`、`std::shared_ptr`等),它们自动管理内存,避免内存泄漏。 总结,理解并熟练掌握指针的用法是成为一名优秀程序员的关键...

    C++中动态内存分配引发问题的解决方案1

    我们可以将char指针str改为unique_ptr&lt;char[]&gt;,这样可以自动释放内存。在析构函数~Wrong()中,我们不需要使用delete操作符来释放内存,因为unique_ptr会自动释放内存。 此外,我们还可以使用RAII(Resource ...

    收发数据包源代码

    // Unique identifier unsigned short ip_offset; // Fragment offset field unsigned char ip_ttl; // Time to live unsigned char ip_protocol; // Protocol(TCP,UDP etc) unsigned short ip_checksum; // ...

    zifuchuan.rar_basic pointer c++

    学习这些基础知识后,还可以进一步探索更高级的主题,如指针数组、指针函数、多级指针、智能指针(如C++11引入的`std::unique_ptr`, `std::shared_ptr`等),以及在STL容器(如`std::vector`, `std::string`)中指针...

    预防内存操作bug

    为解决这些问题,C++引入了智能指针,如`std::unique_ptr`、`std::shared_ptr`和`std::weak_ptr`。智能指针是一种对象,它可以自动管理其所指向的原始指针的生命周期。当智能指针的生命周期结束时,它会自动释放所...

    商业编程-源码-共享内存封装类2.zip

    void SharedMemory::write(const char* data, size_t len) { std::lock_guard&lt;std::mutex&gt; lock(mutex); memcpy(memory.get(), data, len); } // 读取 void SharedMemory::read(char* dest, size_t len) { std::...

    ValueInternals..

    4. **使用现代C/C++特性**:例如使用智能指针(`std::unique_ptr`, `std::shared_ptr`)来自动管理内存生命周期,减少内存泄漏的风险。 #### 标签解读:“class” 虽然在这个上下文中没有直接提及具体的类或对象,但...

    c++教程-第 1 章 迈向现代 C.docx

    - 替代方案: 使用 `unique_ptr`。 - **`register` 关键字** 被弃用: - 仍然可以使用,但不再具有任何实际意义。 - **`bool` 类型的 `++` 操作** 被弃用: - 通常情况下,不应直接对 `bool` 类型执行此类操作。 - *...

    读取电脑MAC地址

    std::unique_ptr&lt;char[]&gt; buf(new char[bufLen]); IP_ADAPTER_ADDRESSES* adapterAddresses = (IP_ADAPTER_ADDRESSES*)buf.get(); GetAdaptersAddresses(AF_UNSPEC, flags, NULL, adapterAddresses, &bufLen); ...

    C++的String类及其成员函数和智能指针专题.pdf

    - 在C++11及以后的版本中,智能指针如`std::unique_ptr`和`std::shared_ptr`用于管理动态分配的对象,它们可以自动释放内存。然而,`std::string`已经内部管理了内存,通常不需要使用智能指针来管理`std::string`...

    用C++来实现类Unity3d的AddComponent

    std::unique_ptr&lt;BaseComponent&gt; GetComponentByName(const char* typeName) { // 从对象池中查找或创建组件 } void AddComponent(GameObject& gameObj, const char* typeName) { auto component = ...

    STL(shipped with VC6) Questions &amp; Answers(四).docx

    如果需要Map管理指针所指向的对象,通常需要使用智能指针(如std::shared_ptr或std::unique_ptr)来确保正确释放内存。 二、错误地将char*数组放入queue 在提供的代码示例中,`char s[10]`是一个静态分配的数组,...

    C++中一些容易混淆的知识

    - **Smart Pointers**:现代C++中推荐使用智能指针如`std::unique_ptr`和`std::shared_ptr`来自动管理动态分配的内存。 #### Q7. String 和 Cstring 的区别 - **String**:C++标准库中的`std::string`类,提供了...

Global site tag (gtag.js) - Google Analytics