我有一个类变量ptr,我希望它指向我的一维int数组的第一个元素。这两个语句之间有什么区别,我应该使用哪一个?
ptr
int
shared_ptr<int> ptr1; shared_ptr<int[]> ptr2;
li9yvcax1#
shared_ptr<int>持有指向 * 单个 * int的int*指针。预期使用new运算符分配该int(最好通过调用std::make_shared<int>(value)),并使用delete运算符释放该int。shared_ptr<int[]>保存指向int[] * 数组 * 的第一个元素的int*指针。该数组应使用new[]运算符分配(最好通过调用std::make_shared<int[]>(size)),并使用delete[]运算符释放。
shared_ptr<int>
int*
new
std::make_shared<int>(value)
delete
shared_ptr<int[]>
int[]
new[]
std::make_shared<int[]>(size)
delete[]
1条答案
按热度按时间li9yvcax1#
shared_ptr<int>
持有指向 * 单个 *int
的int*
指针。预期使用new
运算符分配该int
(最好通过调用std::make_shared<int>(value)
),并使用delete
运算符释放该int
。shared_ptr<int[]>
保存指向int[]
* 数组 * 的第一个元素的int*
指针。该数组应使用new[]
运算符分配(最好通过调用std::make_shared<int[]>(size)
),并使用delete[]
运算符释放。