错误:数组new中GCC带括号的初始值设定项

  • 本文关键字:数组 new GCC 错误 c++
  • 更新时间 :
  • 英文 :


在模板类构造函数中,通过T *p = new T[10](userInputData)初始化数组但是G++parenthesized initializer in array new,该如何处理呢?

问题

尽管我们可以使用空括号来值初始化数组的元素,但我们不能在括号内提供元素初始化器。

这意味着,

int *pia2 = new int[10](); //VALID, block of 10 ints value initialized to 0
int *pia3 = new int[10](55); //NOT VALID

出于同样的原因,你会出现上述错误。特别是,您提供了初始值设定项userInputData

若要解决此错误,必须删除初始值设定项userInputData。您也可以使用std::fill_n,如下所示。

T *p = new T[10];
std::fill_n(p, 10, userInputData);

最新更新