首页 > 解决方案 > 将参数传递给C中的结构

问题描述

我想创建以下结构。

struct student
{
    char name[n+1];
    int length = n; 
};

其中 n 是一个特定的整数。是否可以将参数传递给结构或其他解决方案来实现这样的目标?也许是指针。所以我想要基于长度的不同结构。

标签: arrayscpointers

解决方案


您可以使用灵活的数组成员:

struct student {
  int length;
  char name[];
};

结构体的长度被分配和初始化n

struct student *s = malloc(sizeof *s + n + 1);
s->length = n;
// initialize s->name
strcpy(s->name, the_name_of_n_chars);

free不用的s时候记得打电话。


推荐阅读