I am writing a C program that requires me to use a dynamically allocated struct which is defined as below.
typedef struct
513 {
514 char* word;
515 int freq;
516 }wordfreq;
When I allocate the word field of this struct, I am allocating this dynamically as well (using strdup).
Now when I want to free this struct here's basically what I'm doing
wordfreq* w (its a parameter to a method).
free(w->word);
free(w);
This gives me a glibc double free error at runtime..
If I only use free(w), I don't get an error, but I am afraid that I'm allowing a memory leak to occur.
Any help will be appreciated.. Thanks..