c++ - 如何初始化指向nullptr c ++的动态指针数组
问题描述
我有一个代码:
var *item[8] = { nullptr };
而且效果很好。但我需要动态地做到这一点。这是我尝试过的:
int n = 8;
var **item;
item = new var*[n]();
item = { nullptr };
但这不起作用。区别在哪里,我该怎么办?
//对不起我的英语不好
解决方案
()
initem = new var*[n]();
将为您初始化所有指向的指针,nullptr
因此您无需在之后手动执行此操作。
int n = 8;
var **item;
item = new var*[n](); // <-- all are nullptr here
也就是说,你真的应该使用std::vector
而不是new[]
直接使用:
int n = 8;
std::vector<var*> item;
item.resize(n);
或者简单地说:
int n = 8;
std::vector<var*> item(n);
无论哪种方式都应该初始化指针nullptr
。但是,如果您想明确说明,可以这样做:
int n = 8;
std::vector<var*> item;
item.resize(n, nullptr);
int n = 8;
std::vector<var*> item(n, nullptr);
推荐阅读
- cassandra - 运行 Debezium cassandra 连接器时出现 Cassandra 错误
- sql - 如何使用 Bigquery SQL 中的另一个表对列进行分桶?
- python - Pandas:根据 IF 条件创建复制值列到其下方的单元格
- spring - WebClient 请求的简单日志转储?
- python - Tweepy 只回复新的提及并忽略我已经回复的那些
- migration - 通过 OpenUpgrade 将 odoo11 升级到 odoo13 的问题
- powershell - 无法获取 Service Fabric PowerShell 模块
- string - 最长有效括号问题
- python - 散景多个图成网格图
- python - 包含 .iloc 的代码不适用于 Koalas 数据框