Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    22

    [C] Ritornare array da funzione

    Qualcuno puo spiegarmi come ritornare un array da una funzione.
    il prototipo o la dichiarazione della funzione devono avere qualcosa di particolare?
    per esempio se dovessi ritornare un array duoble popolato nella funzione andrebbe bene questo:
    codice:
     
    double funzione(void);
    
    main(){
    
    ......
    ......
    
    c=funzione();
    
    }
    double funzione(void){
    
    for(i=0;i<n;i++){
    k=(double)lrand48()/RAND_MAX;
    arr[i]=k
    }
    
    return arr;
    }
    Quando chiamo la funzione nel main a cosa devo eguagliare lafunzione??

  2. #2
    Utente di HTML.it L'avatar di Dark867
    Registrato dal
    Mar 2010
    Messaggi
    435
    Devi fare 2 cose:
    1)Allocare il tuo array in maniera DINAMICA all'interno della funzione.
    2)Ritornare il puntatore all'array.

    Questo perché se provi ad allocare staticamente il tuo array questo viene immediatamente deallocato all'uscita della funzione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    22
    Ok ma come si fa ad allocare dinamicamente una variabile e nel caso specifico un'array?scusa l'ignoranza ma sul libro non ho trovato nulla...

  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Puoi usare una funzione come malloc.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    22
    Originariamente inviato da ramy89
    Puoi usare una funzione come malloc.
    Sono riuscito a ritornarlo con malloc, ma mi si presenta un altro problema, per ritornare ho dovuto dichiarare una funzione di tipo double* , quando nel main voglio stamapre i valori dell array non so che descrittore usare nel printf dato che se uso %lf mi dice che il tipo della variabile è double* , e %lf non va bene perche rappresenta un semplice double

  6. #6
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Usa il %f , posta il codice comunque.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da torky
    Sono riuscito a ritornarlo con malloc, ma mi si presenta un altro problema, per ritornare ho dovuto dichiarare una funzione di tipo double* , quando nel main voglio stamapre i valori dell array non so che descrittore usare nel printf dato che se uso %lf mi dice che il tipo della variabile è double* , e %lf non va bene perche rappresenta un semplice double
    Ma tu sai usare i puntatori?

    Se ottieni un puntatore a double, lo utilizzi così

    *p

    per ottenere il corrispondente valore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Originariamente inviato da oregon
    Ma tu sai usare i puntatori?

    Se ottieni un puntatore a double, lo utilizzi così

    *p

    per ottenere il corrispondente valore.
    quoto. si usa * per il valore , mentre il & è usato per l indirizzo.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    22
    Originariamente inviato da oregon
    Ma tu sai usare i puntatori?

    Se ottieni un puntatore a double, lo utilizzi così

    *p

    per ottenere il corrispondente valore.

    No non li so usare......grazie ramy!!

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da torky
    No non li so usare......grazie ramy!!
    Quindi .... ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.