C中的结构数组

Hri*_*sto 5 c arrays struct

我正在尝试创建一个结构数组,也是一个指向该数组的指针.我不知道阵列有多大,所以它应该是动态的.我的结构看起来像这样:

typedef struct _stats_t
{
 int hours[24]; int numPostsInHour;
 int days[7]; int numPostsInDay;
 int weeks[20]; int numPostsInWeek;
 int totNumLinesInPosts;
 int numPostsAnalyzed;

} stats_t;
Run Code Online (Sandbox Code Playgroud)

...我需要为每个文件(未知数量)提供多个这些结构,我将分析.我不知道该怎么做.由于数组大小的限制,我不喜欢以下方法:

# define MAX 10
typedef struct _stats_t
{
 int hours[24]; int numPostsInHour;
 int days[7]; int numPostsInDay;
 int weeks[20]; int numPostsInWeek;
 int totNumLinesInPosts;
 int numPostsAnalyzed;

} stats_t[MAX];
Run Code Online (Sandbox Code Playgroud)

那我该怎么创建这个数组呢?此外,指向此数组的指针会看起来像这样吗?

stats_t stats[];
stats_t *statsPtr = &stats[0];
Run Code Online (Sandbox Code Playgroud)

wal*_*lyk 6

这是通常的方式:

size_t n = <number of elements needed>
stats_t *ptr = malloc (n * sizeof (stats_t));
Run Code Online (Sandbox Code Playgroud)

然后,填写它,

for (size_t j = 0;  j < n;  ++j)
{
   ptr [j] .hours = whatever
   ptr [j] .days = whatever
   ...
}
Run Code Online (Sandbox Code Playgroud)