智能指针创建char数组
时间: 2024-06-13 21:06:32 浏览: 154
可以使用智能指针来创建char数组,具体方法如下所示:
```cpp
#include <memory>
int main() {
// 创建一个长度为10的char数组的unique_ptr
std::unique_ptr<char[]> charArray = std::make_unique<char[]>(10);
// 给数组赋值
for (int i = 0; i < 10; i++) {
charArray[i] = 'A' + i;
}
// 输出数组内容
for (int i = 0; i < 10; i++) {
std::cout << charArray[i] << " ";
}
return 0;
}
```
上述代码中,我们使用了`std::unique_ptr`来创建了一个长度为10的char数组,并使用循环给数组赋值。最后,我们再次使用循环输出了数组的内容。需要注意的是,由于我们使用了`std::unique_ptr`,因此在程序结束时,该指针会自动销毁,从而避免了内存泄漏的问题。
相关问题
c++ 智能指针shared_ptr char 数组指针
智能指针shared_ptr可以用于管理C++中的char数组指针。使用shared_ptr可以确保在不再需要使用char数组指针时,自动释放内存,省去了手动删除的烦恼。你可以使用shared_ptr的make_shared函数来创建一个shared_ptr对象,指向一个char数组指针。例如,你可以这样定义一个shared_ptr对象p,指向一个长度为10的char数组指针:
```cpp
shared_ptr<char[]> p = make_shared<char[]>(10);
```
这样,当p不再被使用时,它所指向的char数组指针将会自动被释放。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++智能指针shared_ptr](https://blog.csdn.net/qq_51447496/article/details/128306172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
unique_ptr 创建一个char数组
可以使用如下方式创建一个 unique_ptr 智能指针,它指向一个 char 数组:
```
std::unique_ptr<char[]> ptr(new char[10]);
```
这里我们使用了 unique_ptr 的模板参数,将其指定为 char[] 类型,表示其指向一个 char 数组。在创建时,我们使用了 new 运算符动态分配了一个大小为 10 的 char 数组,并将其传递给了 unique_ptr 的构造函数。由于 unique_ptr 是独占所有权的智能指针,因此当 unique_ptr 对象 ptr 超出作用域时,它会自动释放所指向的内存。而且由于使用了智能指针,我们不需要显式调用 delete[] 释放内存,避免了手动管理指针的麻烦。
阅读全文