Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C] Dubbio su funzione

  1. #1

    [C]Dubbio su funzione

    dopo un po di tempo,riprendendo in mano C ho scritto una funzione del genere :

    //DE_PObject e' un tipo puntatore a struct
    DE_PObject DE_ObjectFree(DE_PObject DE_Variabile);

    l' utilizzo nel main sarebbe tipo :

    DE_PObject my_object;
    my_object=DE_ObjectFree(my_object);

    in pratica questa funzione :

    1-prende come parametro un DE_PObject
    2-disalloca la struct
    3-restituisce gia' un NULL per sicurezza

    IL DUBBIO E' :

    con una sola funzione come indicato sopra , posso usare la stessa variabile sia come paramatro, sia per assegnare il valore di ritorno della funzione ?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,299
    Se scrivi

    DE_PObject my_object;

    stai semplicemente allocando il puntatore ma *non* la struttura ...

    La chiamata a

    my_object=DE_ObjectFree(my_object);

    e' abbastanza strana, perche' un puntatore si passa per potere operare sui dati su cui punta in modo che il parametro sia di input e di output contemporaneamente; dato cio', e' inutile che la funzione restituisca un ulteriore puntatore ... dovrebbe essere, semplicemente

    DE_ObjectFree(my_object);

    Inoltre parli di deallocare la struttura ... ma non l'hai mai allocata ...

  3. #3
    Originariamente inviato da oregon
    Se scrivi

    DE_PObject my_object;

    stai semplicemente allocando il puntatore ma *non* la struttura ...

    La chiamata a

    my_object=DE_ObjectFree(my_object);

    e' abbastanza strana, perche' un puntatore si passa per potere operare sui dati su cui punta in modo che il parametro sia di input e di output contemporaneamente; dato cio', e' inutile che la funzione restituisca un ulteriore puntatore ... dovrebbe essere, semplicemente

    DE_ObjectFree(my_object);

    Inoltre parli di deallocare la struttura ... ma non l'hai mai allocata ...
    la struttura viene allocata con altre funzioni, la domanda era un altra .

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Si è corretto; e ha senso restituire null in modo da impostare a null il puntatore deallocato

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

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 © 2020 vBulletin Solutions, Inc. All rights reserved.