gpt4 book ai didi

C++ - 不能 'new' 一个未知大小的数组,尽管进行了 Braced-List 初始化?

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:12 25 4
gpt4 key购买 nike

前言:

我没有找到关于这个问题的任何信息。我发现的唯一一件事是人们动态分配数组而不提供任何关于所述数组大小的信息,就像这样 int* p = new int[];

我的问题不同:

float arr[]{ 1,2,3 };
float* p = new float[]{1, 2, 3};

第一行编译正常,第二行没有:

Error C3078 Array size must be specified in new expressions

我想知道:为什么编译器不像第一种情况那样从列表初始化中评估数组大小?

最佳答案

void* operator new[] (std::size_t size);

明确要求尺寸。您可以定义自己的运算符来获取初始化列表。

正如一位评论员所说,std::vector 通常是首选方法,但我猜您对语言的技术细节感兴趣,这就是您提问的原因。

关于C++ - 不能 'new' 一个未知大小的数组,尽管进行了 Braced-List 初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38143853/

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