Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - C - Restituzione di Valori al Main tramite puntatore
Forum - C/C++ - C - Restituzione di Valori al Main tramite puntatore

Avatar
torre92 (Normal User)
Rookie


Messaggi: 22
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 17:52
Mercoledì, 21/03/2012
Ciao,
sto facendo un esercizio per l'università che non capisco bene...

Codice sorgente - presumibilmente C/C++

  1. Scrivere una funzione che inserisce in un vettore
  2. un numero n (non fissato a priori) di valori e
  3. restituisce al main il puntatore al vettore creato.
  4. Richiamare la funzione dal main.



Io l'avrei interpretato così ma non va, e penso che l'errore sia banalmente dovuto dal fatto che non posso passare un vettore tramite una funzione, sbaglio?

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int nValori() {
  5.         int n, i;
  6.         int *vett;
  7.  
  8.         printf("Quanti valori vuoi inserire? ");
  9.         scanf("%d", &n);
  10.  
  11.         vett = (int*)malloc(n*sizeof(int*));
  12.  
  13.         for(i=0;i<n;i++) {
  14.                 printf("Inserisci il valore %d:", i+1);
  15.                 scanf("%d", &vett[i]);
  16.         }
  17.         return *vett;
  18. }
  19.  
  20. int main() {
  21.         int *vett;
  22.  
  23.         vett = nValori();
  24.  
  25.         getchar();
  26.         getchar();
  27.  
  28. }


PM
Avatar
ale.gatti96 (Member)
Pro


Messaggi: 71
Iscritto: 29/11/2011

Up
2
Down
V
Segnala al moderatore
Postato alle 18:07
Mercoledì, 21/03/2012
Devi mettere l'asterisco per dire che la funzione restituisce un puntatore
Codice sorgente - presumibilmente C/C++

  1. int *nValori() {
  2.   int *vett;
  3.   ...
  4.   return vett;
  5. }


Ultima modifica effettuata da ale.gatti96 il 21/03/2012 alle 18:15
int *nValori() { int *vett; ... return vett; } - torre92 - 21/03/12 18:12
Cioè, il return senza l'asterisco... - torre92 - 21/03/12 18:12
hai ragione, ho corretto - ale.gatti96 - 21/03/12 18:15
Ho visto, grazie mille! ;D - torre92 - 21/03/12 18:20
PM