Declare and allocate memory for an array of structures in C -


i'm trying declare , allocate memory array of structures defined follows:

typedef struct y{ int count; char *word; } hstruct 

what have right is:

hstruct *final_list; final_list = calloc (max_str, sizeof(hstruct)); 

max_strbeing max size of char word selector. plan on being able refer as: final_list[i].count, integer , final_list[i].word, string.

ibeing integer variable.

however, such expressions return (null). know i'm doing wrong, don't know what. appreciated. thanks.

a struct contains pointer doesn't directly holds data, holds pointer data. memory pointer correctly allocated through calloc address.

this means duty allocate it:

hstruct *final_list; final_list = calloc(list_length, sizeof(hstruct));  (int = 0; < list_length; ++i)   final_list[i].word = calloc(max_str, sizeof(char)); 

this requires free memory pointed final_list[i].word before releasing array of struct itself.


Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -