c - Allocate and free memory of an array from structure -
i have following structure:
typedef struct { char *name[10]; char *msg[100]; } log; how can free name , msg arrays log structure? know free used dynamic allocation, , dynamic allocation doesn't work in structures. can do?
tryed give error:
typedef struct { char *name[] = (char *)malloc(sizeof(char) * 10); char *msg[] = (char *)malloc(sizeof(char) * 100); } log; who can me? thanks!
declaring structure doesn't allocate memory members. memory allocated when instance of structure created.
typedef struct { char *name[10]; char *msg[100]; } log; doesn't allocate memory name , msg, declare log new data (user defined) type. when create instance of
log log_flie; memory allocated name , msg. can allocate memory (dynamically) elements of data member
for(int = 0; < 10; i++) log_file.name[i] = malloc(n); //n desired size similarly can msg.
to free dynamically allocated memory, call free
for(int = 0; < 10; i++) free(log_file.name[i]); if want allocate memory name , msg dynamically follows
typedef struct { char **name; char **msg; } log; then
log log_file; log_file.name = malloc(10 * sizeof(char *)); log_file.msg = malloc(100 * sizeof(char *));
Comments
Post a Comment