如何将内存分配给包含动态数组的结构? (C)

时间:2014-04-14 21:05:12

标签: arrays memory dynamic struct malloc

我不太清楚如何将内存分配给包含动态数组字段的结构指针。例如,我有以下结构:

typedef struct log_file {
    char *name;
    int updatesize;
    int numupdates;
    int *users;  /* dynamic array of integers */
} log_data;

当我使用log_data

创建log_data *log_ptr = malloc(sizeof(log_data));指针时

如何为struct中的动态数组users分配足够的内存?

1 个答案:

答案 0 :(得分:1)

怎么样:

log_ptr->users = malloc(sizeof(int)*numOfUsers);

或者,如果您想使其与*users的类型无关:

log_ptr->users = malloc(sizeof(*log_ptr->users)*numOfUsers);