我目前正在学习c结构,尤其是具有灵活数组成员的结构。
给出结构灵活的数组
struct flex
{
size_t count;
double average;
double scores[]; // flexible array member
};
有人告诉我不要使用作业进行复制
我不确定为什么此操作仅复制结构的非柔性成员。
有人可以向我解释这种情况的根本原因吗?
答案 0 :(得分:1)
结构的尺寸不计入FAM。编译器无法知道FAM有多大。因此,任何副本都将忽略FAM。由于很少有所需的行为,因此请勿在具有FAM的结构上使用结构复制。