Спасибо работает. Я тут сам вариант придумал, но ваша версия покороче будет!
Вот мой вариант:struct _cfg *cfg, *ptr;
if(cfg == NULL)
{
cfg = calloc(1, sizeof(struct config));
cfg->var = malloc(strlen(var));
cfg->val = malloc(strlen(val));
strcpy(cfg->var, var);
strcpy(cfg->val, val);
}
else
{
ptr = calloc(1, sizeof(struct config));
ptr->next = calloc(1, sizeof(struct config));
ptr->var = malloc(strlen(var));
ptr->val = malloc(strlen(val));
strcpy(ptr->var, var);
strcpy(ptr->val, val);
ptr->next = cfg;
cfg = ptr;
}