Malloc结构的元素

Malloc结构的元素,c,struct,malloc,C,Struct,Malloc,我有以下结构: struct postsTempo { int ano; ShortData dias[373]; struct postsTempo* prox; }; 当我执行malloc(sizeof(struct postsTempo))时,我是否分配了所需的所有内容,还是仍然需要malloc该ShortData数组?我无法向该数组添加任何内容…每当使用malloc()分配内存时,它会为结构中声明的所有变量创建内存空间 因此,对于ShortData不需要进一步使

我有以下结构:

struct postsTempo {
    int ano;
    ShortData dias[373];
    struct postsTempo* prox;
};

当我执行
malloc(sizeof(struct postsTempo))
时,我是否分配了所需的所有内容,还是仍然需要
malloc
ShortData
数组?我无法向该数组添加任何内容…

每当使用
malloc()
分配内存时,它会为结构中声明的所有变量创建内存空间


因此,对于
ShortData

不需要进一步使用
malloc
,是的,您不需要malloc ShortData数组,因为这是在堆栈上创建的本地数组,并且具有自动存储持续时间。
看一看:

我认为说ShortData数组在堆栈上有点误导,因为OP正在使用
malloc
为外部
struct postsTempo
分配存储。在这种情况下,ShortData不会在堆上分配吗,因为它是在堆上分配的结构的一部分?编辑:我看到有人已经对此发表了评论。