Есть функция, инициализирующая массив, состоящий из структур. Функция работает, но Valgrid выдает ошибку "12 bytes are definitely lost ..."
void init_product(struct product *pr, const char *title, const char *code,
int stock, double price)
{ char *temp;
temp = title;
temp = malloc(strlen(title) + 1);
if (temp == NULL){
return NULL;
}
strcpy(temp, title);
title = temp;
pr->title = title;
int i = 0;
while (*code) {
pr->code[i] = (*code);
code++;
i++;
if (i == 7)
break;
}
pr->code[i] = '\0';
pr->stock = stock;
pr->price = price;
}
Память для поля title была dynamically allocated, поэтому теперь ее надо освободить, изменив для этого main.c
int main()
{
struct product p;
init_product(&p, "test", "1234", 1, 0.50);
}
И вот тут я не знаю что делать.
free(p.title)
не помогает.