【发布时间】:2026-01-20 18:50:02
【问题描述】:
所以当newing 一个chars 的数组时,我可以初始化:
const char* foo = new char[4]{'J', 'o', 'n', '\0'};
我想知道的是如何在initializer_list中使用变量:
const string initializer{"jon"};
const char* foo = new char[4]{initializer.c_str()}; // This doesn't work, can I make it work?
【问题讨论】:
-
在这里快速评论一下,我知道在 C++11 中我应该使用自动指针或
strings。我试图了解new值初始化在概念上的工作原理,不在我的代码中使用它。 -
const char* foo = new char[4]{initializer[0], initializer[1], initializer[2], initializer[3]};如果你真的坚持的话。或者干脆分配,然后strcpy(或std::copy或类似)。 -
@IgorTandetnik 我想这确实回答了这个问题:J 我希望一些不那么明确的东西。
标签: c++ variables c++11 new-operator initializer-list