Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    45

    funzione malloc()

    Salve a tutti

    un quesito...
    chi sa scrivere una funzione con protoripo:

    void libera_memoria(Polinomio p)
    che prenda come parametro un polinomio i cui termini siano stati allocati uno alla volta con malloc() e li deallochi sempre uno alla volta con free()

    grazie

  2. #2
    se tu postassi come è definita la struttura Polinomio, ti potremmo anche aiutare!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    45

    Ecco la struttura

    typedef struct termine {
    float coeff;
    int esponente;
    struct termine *next;
    } Termine, *Polinomio;

  4. #4

    Re: Ecco la struttura

    Originariamente inviato da moles
    typedef struct termine {
    float coeff;
    int esponente;
    struct termine *next;
    } Termine, *Polinomio;
    Beh dato che ogni elemento contiene un puntatore all'elemento successivo (una sorta di lista concatenata) quello che ti conviene fare e' di definirti una funziona ricorsiva del tipo.

    codice:
    void libera_memoria(Polinomio*p)
    {
    if(p->next==NULL) return;
    else 
    {
    libera_memoria(p->next);
    free(p->next);
    }
    }
    Dovrebbe andare bene, cmq se vedi che c'è qualche errore(non credo) sappi che deve essere una funzione ricorsiva che arriva all'ultimo elemento del Polinomio e quando non ci sono altri termini allora comincia a tornare indietro.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.