我在一个返回指针的类中编写了一个函数:
DATA_TYPE* foo(){
...
return DATA
}
在我的主要部分我试着写
int[10] = {Class.foo()};
但这不起作用,但为什么呢
int[10] = {[12,...,123]};
工作?
答案 0 :(得分:2)
为什么要起作用?指针不是数组;这两种类型 没有关系。数组是聚合,需要聚合 初始化。指针是标量。
请注意,使用聚合初始化(或其等效项)时
在您提供的C ++ 11)的统一初始化语法中
各个元素的初始值设定项,不是的整体
阵列。 (初始化char[]
有一个特殊例外
用字符串文字。)所以你试图初始化一个
带有指针的int
,需要显式
reinterpret_cast
。