*MyFile.h*
typedef char* dado_t;
typedef struct elemento elemento;
typedef struct lista2 lista2;
*MyFile.c*
struct elemento{
dado_t str;
elemento* ant;
elemento* prox;
};
struct lista2{
elemento* primeiro;
elemento* ultimo;
elemento* corrente;
};
void_insert(lista2* l, dado_t d){
elemento* novo = malloc(sizeof(elemento*));
novo->str = malloc(strlen(d) * sizeof(char));
novo->str = d;
l->corrente = novo;
l->primeiro = novo;
l->ultimo = novo;
novo->prox = NULL;
novo->ant = NULL;
}
dado_t replace(lista2* l, dado_t d){
dado_t retorno = malloc(strlen(corrente->str) * sizeof(dado_t));
retorno = corrente->str;
corrente->str = realloc(corrente->str, strlen(d) * sizeof(char));
l->corrente->str = d;
return retorno;
}
Почему я получаю эту ошибку? Поскольку myel->str
является указателем, который был выделен malloc()
. Почему ошибка? Я использую временный элемент * быть предотвращены, если ошибка происходит с перераспределить()Realloc Invalid Pointer. Отменено (ядро сбрасывается)
Наб:
Вы установили 'myel-> str' в d после malloc – Dinesh
@Dinesh Да, но ошибка происходит до того, как компилятор туда попадет ... = s – PlayHardGoPro
Вы хотите поделиться немного больше своего кода, потому что вызов последовательность неясна. возможно - до realloc - просто напечатайте myel-> str и d - может дать некоторую подсказку – Dinesh