gpt4 book ai didi

c++ - 一条指令中的 new、() 和 [] 运算符

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:19:37 25 4
gpt4 key购买 nike

为什么我不能像这样使用 new 运算符:

char* p;

p = new char('a')[3];

delete[] p;

编译器说:

error C2143: syntax error : missing ';' before '['
error C3409: empty attribute block is not allowed
error C2143: syntax error : missing ']' before 'constant'

最佳答案

在C++11中,你可以通过新的uniform initialization来初始化动态分配的聚合。 :

p = new char[3] {'a', 'a', 'a'};

在 C++98 中,您不能为动态分配的聚合指定初始化列表。你所能做的就是先分配数组,然后用一个值填充它:

p = new char[3];
std::fill(p, p + 3, 'a');

关于c++ - 一条指令中的 new、() 和 [] 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11595331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com