我不太清楚如何将内存分配给包含动态数组字段的结构指针。例如,我有以下结构:
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
分配足够的内存?
答案 0 :(得分:1)
怎么样:
log_ptr->users = malloc(sizeof(int)*numOfUsers);
或者,如果您想使其与*users
的类型无关:
log_ptr->users = malloc(sizeof(*log_ptr->users)*numOfUsers);