我想创建以下结构。
struct student
{
char name[n+1];
int length = n;
};
Run Code Online (Sandbox Code Playgroud)
其中n是一个特定的整数。是否可以将参数传递给结构或其他解决方案来实现类似的目标?也许是指点。所以我想要基于长度的不同结构。
您可以使用灵活的数组成员:
struct student {
int length;
char name[];
};
Run Code Online (Sandbox Code Playgroud)
该结构体的长度分配和初始化n如下:
struct student *s = malloc(sizeof *s + n + 1);
s->length = n;
// initialize s->name
strcpy(s->name, the_name_of_n_chars);
Run Code Online (Sandbox Code Playgroud)
不再使用时请记得致电free。s