【发布时间】:2015-11-25 11:44:40
【问题描述】:
我们可以声明一个可变长度的结构元素吗?
条件如下:
typedef struct
{
uint8_t No_Of_Employees;
uint8_t Employee_Names[No_Of_Employees][15];
}st_employees;
【问题讨论】:
-
你的编译器是怎么说的?
-
您可以做的是将数组声明为灵活数组成员,稍后您可以在运行时为其分配空间。来自 C 标准的示例:
struct s { int n; double d[]; }; int m = /* some value */; struct s *p = malloc(sizeof (struct s) + sizeof (double [m])); -
我正在使用 IAR gcc 编译器
-
GCC 编译器的哪个版本?什么编译命令行?你用
gcc -std=c99 -Wall编译了吗? -
@user12345 除非我一直生活在岩石之下,否则 IAR 和 GCC 是截然不同的编译器。出于好奇,目标处理器是哪一个?
标签: c struct variable-length-array