Enviado em 27/03/2015 - 12:29h
Estou com um problema para dar free no C. Gostaria de saber porque o programa quebra quando cloco o free na seguinte posição.
Afinal de contas, depois que eu usei o ponteiro dentro do else, posso liberá-lo ali, não?
....
while(p != NULL){
if(p->next) //operação com p
else
{
estrutura* ptr= (estrutura*) malloc(sizeof(estrutura));
ptr->name = p->name;
ptr->value = p->value;
ptr->next = NULL;
if (genericParameters == NULL)
{
genericParameters = newP;
}
else
{
parameters* last = genericParameters;
while (last->next != NULL) {
last = last->next;
}
last->next = ptr;
}
free(ptr);
}
p = p->next;
}
//mais nada aqui
}
obrigado.
Afinal de contas, depois que eu usei o ponteiro dentro do else, posso liberá-lo ali, não?
....
while(p != NULL){
if(p->next) //operação com p
else
{
estrutura* ptr= (estrutura*) malloc(sizeof(estrutura));
ptr->name = p->name;
ptr->value = p->value;
ptr->next = NULL;
if (genericParameters == NULL)
{
genericParameters = newP;
}
else
{
parameters* last = genericParameters;
while (last->next != NULL) {
last = last->next;
}
last->next = ptr;
}
free(ptr);
}
p = p->next;
}
//mais nada aqui
}
obrigado.