【问题标题】:Declaring array of structs声明结构数组
【发布时间】:2026-02-19 03:55:01
【问题描述】:

我有一个数组

int arr*;

我已经声明了一个结构

struct counter{
    int index=0;
    int count=0;
    int *values;  // array
}

并且该数组将具有预定义的最大大小。

如何在数组的每个索引中“推送”结构?我尝试过如下操作:

for ( int i =0; i < max ; i ++ ){
    arr[i]=counter Store_Struct;
    arr[i]->values=(int *)malloc ( 2 * sizeof ( int ));
}

但这一小段代码不起作用。如何将结构作为数组值推送?

【问题讨论】:

  • 请考虑将您的问题限制在至少可以通过编译器的代码上,或者限制在编译器拒绝代码的原因上。你的也不是。
  • int arr*; 不会编译。

标签: c arrays struct


【解决方案1】:

不支持“推送”;既不是标准库也不是任何内置的。您需要编写自己的 dynamic memory allocation mechanism

此外,C 不支持 struct 成员的默认初始化,就像您尝试使用的那样。使用designated initializer list

【讨论】: