【发布时间】:2018-03-01 14:47:19
【问题描述】:
可以使用复合文字来初始化 C 中指向结构的指针数组。
typedef struct {
int a;
int b;
} s;
在 C 中:
s *ptrArray[] = {
&(s){
.a = 1,
.b = 2
},
&(s){
.a = 4,
.b = 5
}
};
如何在 C++ 中做到这一点?
我还看到了不使用复合语句在 C++ 中初始化结构的区别:
s s1 = { a: 7, b: 8 };
【问题讨论】:
-
阅读containers、smart pointers、list initialization 和aggregate initialization。 C 和 C++ 是两种完全不同的语言。
-
为什么要使用指针?为什么不想使用
std::vector<s> s1 = {{1,2}, {4,5}};? -
最好避免使用 C++ 中的数组、指针和指针数组。
-
@n.m.:这需要一些链接作为参考或解释。
-
@n.m.:我认为您应该对新手问题的 cmets 采用更具教学性的方法。
标签: c++ arrays pointers struct designated-initializer