c++ - C2440 使用 Shared_ptr 创建二维数组
问题描述
我正在尝试使用 shared_ptr 创建二维数组,但出现错误C2440
。
我想我写了正确的代码,但发生了错误..
请帮帮我,谢谢。
#include <iostream>
#include <memory>
int main()
{
int size;
std::cout << "Input size : ";
std::cin >> size;
std::shared_ptr<std::shared_ptr<int[]>[]> myArr(new std::shared_ptr<int[]>[size]);
for (int i = 0; i < size; i++)
myArr[i] = std::make_shared<int[]>(size); // error..
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
myArr[i][j] = (j+1);
}
}
}
解决方案
我更改了以下代码:
for (int i = 0; i < size; i++)
myArr[i] = std::make_shared<int[]>(size); // error..
进入 :
myArr[i] = std::shared_ptr<int[]>(new int[size]);
用 制作数组shared_ptr
,你不能用make_shared
.
推荐阅读
- django - 如何在 django 模型中创建一个值或外键的字段?
- jquery - jquery切换图标上下功能
- python - 我想在 linux 的文件中添加一些行
- security - 保持 gitlab-ci.yml 不可变的最佳实践是什么?
- mysql - 如何在一个列上连接两个表,同时保留另一列中的值?
- php - 如何使用 PHP 服务器运行 Laravel Mailhog
- python - 有没有更优雅的方法来创建这些 numpy 数组?
- python - 具有离散输出的多类分类:选择哪个损失函数和激活?
- python - 从列表中提取数据然后在单独的数据中一起使用它们的问题(在线课程的一部分)
- java - Guice 注入字段后是否可以做点什么?