arrays - 将参数传递给C中的结构
问题描述
我想创建以下结构。
struct student
{
char name[n+1];
int length = n;
};
其中 n 是一个特定的整数。是否可以将参数传递给结构或其他解决方案来实现这样的目标?也许是指针。所以我想要基于长度的不同结构。
解决方案
您可以使用灵活的数组成员:
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
时候记得打电话。
推荐阅读
- android - 如何在卡片视图中将卡片变灰?
- javascript - 我将如何使用 .addField 循环遍历数组
- arrays - 替代 QUERY 嵌套在 COUNTIF 中,用于 Google 表格中的列数组
- protractor - 无法使用非角度网页的量角器在 iframe 内定位元素
- python - 我应该如何覆盖 python 中 __init__ 方法的默认值?
- github - TRN-Pytorch 模型 - RuntimeError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
- ios - 具有多个部分数据问题的双向滚动collectionView
- python - 在上游添加变量以计算 hessian 矩阵
- c# - 使用表达式从 lambda 函数获取导数
- c# - 无法在 ASP MVC 项目中设置“会话”