Code:
struct key_list
{
char *key_name;
char *key_val;
struct key_list *next;
};
typedef struct _ini_list
{
char *sect_name;
struct key_list *keys;
struct _ini_list *next;
}ini_list;
void add_sect(ini_list **il, const char *s_name)
{
ini_list *tmp=NULL;
ini_list *p=NULL;
tmp = (ini_list*)malloc(sizeof(ini_list));
tmp->sect_name=(char*)malloc(strlen(s_name)+1);
strcpy(tmp->sect_name,s_name);
if(*il==NULL)
{
*il=tmp;
tmp->next=NULL;
}
else
{
p = *il;
while(p->next != NULL)
{
p=p->next;
}
p->next=tmp;
tmp->next=NULL;
}
}
void free_sect(ini_list *il)
{
ini_list *tmp;
while(il != NULL)
{
tmp = il->next;
free(il->sect_name);
free(il);
il=tmp;
}
}
struct key_list
{
char *key_name;
char *key_val;
struct key_list *next;
};
typedef struct _ini_list
{
char *sect_name;
struct key_list *keys;
struct _ini_list *next;
}ini_list;
void add_sect(ini_list **il, const char *s_name)
{
ini_list *tmp=NULL;
ini_list *p=NULL;
tmp = (ini_list*)malloc(sizeof(ini_list));
tmp->sect_name=(char*)malloc(strlen(s_name)+1);
strcpy(tmp->sect_name,s_name);
if(*il==NULL)
{
*il=tmp;
tmp->next=NULL;
}
else
{
p = *il;
while(p->next != NULL)
{
p=p->next;
}
p->next=tmp;
tmp->next=NULL;
}
}
void free_sect(ini_list *il)
{
ini_list *tmp;
while(il != NULL)
{
tmp = il->next;
free(il->sect_name);
free(il);
il=tmp;
}
}
Ovaj kod iznad radi perfektno, ali zelio bih da uradim nesto novo tj. da iskoristim postojecu funkciju za dodavanje sekcije tako sto cu je moci iskoristiti i za dodavanje kljuceva. Nista mi konkretno ne pada na um, nisam odavno radio u C-u, mislio sam da to uradim preko void pokazivaca ali opet nista. Da sumiram, postoji li nacin da vrsim alociranje memorije za dvije vrlo slicne strukture sekcija i kljuc koristeci samo jednu funkciju.
Hvala,
Pozdrav!
Potpisano