【问题标题】:What does "Create a new empty instance of the struct" mean in C? [duplicate]C中的“创建结构的新空实例”是什么意思? [复制]
【发布时间】:2021-06-21 07:34:30
【问题描述】:

基本上我需要做这个功能:

colecao *colecao_nova(const char *tipo_ordem);

创建一个新的 struct colecao 空实例。你应该回来 这个结构的指针。如果发生错误,则返回 NULL。

下面的结构已经包含了,所以我真的不知道我应该做什么。

typedef struct
{
/** pointer to array of stored plants**/
planta **plantas;
/** plant vector size **/
long tamanho;
/** criterion that currently sorts vector in ascending order:
‘nome’ - for nome_cientifico; ‘id’ - for the ID field **/
char tipo_ordem[5];
} colecao;

【问题讨论】:

  • 结构体 definition 包括在内,而不是它的实例。您可以将定义视为食谱,将实例视为自己的餐点。访问此处了解更多信息:codeforwin.org/2018/07/…

标签: c struct


【解决方案1】:

“实例”是指根据某个给定的类型在内存中创建一个已分配的对象。

这意味着在函数内部你应该malloc colecao 结构的一个对象,并可能将成员初始化为任何有意义的值。然后返回指向分配对象的指针。

colecao* c = malloc(sizeof *c); // what c points at will be an instance of colecao
if(c == NULL) return NULL;

c->tamanho = ...; // whatever these are supposed to do
return c;

【讨论】:

  • "tamanho" 似乎是指大小(我猜?),注释是“植物向量大小”,所以也许它应该初始化为零。这也符合“空”结构的描述
  • @ilkkachu 我会把它留给 OP 填写。
猜你喜欢
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 2014-09-01
  • 2020-01-09
  • 2019-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多