I have three files
struct.h struct.c main.c
struct.h contains declaration of structs and some functions
struct.c contains global variable bglobal
an instance of struct b
and function implementations which use bglobal
. It includes .h file
main.c call some of the functions declared in struct.h. It also includes .h file
struct.h contains two struct
struct a{
int *s
}
struct b{
struct a* arr
}
void init();
void more();
struct.c file
#include"struct.h"
struct b bglobal;
void init(){
bglobal.arr = malloc(sizeof(struct a)*5);
}
void more(){
*bglobal.arr[0].name = 'I';
}
main.c file
#include "main.h"
int main(){
init();
more();
}
I want that at end of program memory allocated to bglobal.arr
get freed up.
Using valgrind it says some bytes still reachable.
How to achieve this?