PuPax Posted September 19, 2009 at 05:28 PM Report Share #287822 Posted September 19, 2009 at 05:28 PM Boas tarde, Tenho as seguintes funções implementadas para um lista duplamente ligada. No mais é chamada esta função: read_from_file(head_sorted_list, path); - head_sorted_list é a cabeça da lista; - path é o caminho do ficheiro de texto; Ao entrar nessa função é feita a chamada de outra função: insert_item(head, aux_id, aux_name, aux_price); - head é a cabeça da lista; - aux_id, aux_name e aux_price são os dados para preencher o nó; E a função o que faz é inserir na lista os elementos lidos para lá: void insert_item(list_item* head, int id, char* product_name, float price){ list_item *novo, *aux; novo = (list_item*) malloc (sizeof(list_item)); if(novo == NULL) return; novo->id=id; strcpy(novo->product_name,product_name); novo->price=price; novo->next = NULL; novo->previous = NULL; if(is_empty(head)) { novo->next = head; head = novo; } else if(head->id > novo->id) { novo->next = head; head = novo; (novo->next)->previous = head; } else { aux = head; while(aux->next != NULL && aux->next->id < novo->id) aux = aux->next; if(aux->next != NULL) { novo->next = aux->next; aux->next = novo; (novo->next)->previous = novo; novo->previous = aux; } else { aux->next = novo; novo->previous = aux; } } } O meu problema é que os dados são perdidos da lista, uma vez que ele nunca são retornados. Como poderei fazer isto por referência ou assim é que não vejo outra maneira e o prototipo das funções nao podem ser alterados pois foram dadas pelo prof. Cumprimentos... Link to comment Share on other sites More sharing options...
Guest id194 Posted September 19, 2009 at 08:09 PM Report Share #287862 Posted September 19, 2009 at 08:09 PM Usa o GeSHi para a próxima para colorires o código. Sem mudares a assinatura da função isso é impossível. O que tu queres fazer pode ser feito por referência (como pediste) ou devolvendo o apontador para a cabeça da lista. Mas ambas as opções precisam de uma alteração à assinatura da função. Mas acho muito estranho o prof dar-te código que não podes fazer nada de jeito com ele... Qual é a definição do list_item? Link to comment Share on other sites More sharing options...
pedrosorio Posted September 19, 2009 at 08:33 PM Report Share #287869 Posted September 19, 2009 at 08:33 PM O meu problema é que os dados são perdidos da lista, uma vez que ele nunca são retornados. Não consegui perceber o teu problema. São perdidos como? Não respondo a dúvidas por mensagem. Link to comment Share on other sites More sharing options...
PuPax Posted September 19, 2009 at 09:33 PM Author Report Share #287873 Posted September 19, 2009 at 09:33 PM Pois eu também acho que sem alterar os protótipos das funções não dava para fazer. Alterei e assim ja funciona perfeitamente... 😄 Obrigado Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now