Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [c++]Funziona che ritorna un array

    Ciao
    scusate la banalità della domanda, ma in c++ è possibile dichiarare una funzione che ritorna un array?
    se si come?
    Grazie mille
    ciao

  2. #2
    + che l'array la funzione deve restituire il puntatore di quell'array
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  3. #3
    si ma mi dici come fare?non mi va bene passere il riferimento al vettore come parametro

  4. #4
    Originariamente inviato da claudiosala80
    si ma mi dici come fare?non mi va bene passere il riferimento al vettore come parametro

    codice:
    #include <iostream>
    
    using namespace std;
    
    
    void vettore(int *,const int); //prototipo
    
    int main()
    {
        
     int a[3];
     
     
     vettore(a,3);
     
     cout<<a[0];
      
     system("PAUSE");
     return 0;
    }    
    
    
    void vettore(int *a,const int size) { for (int i=0;i<size;i++) a[i]=0; }
    E' tutta colpa di Berlusconi !
    Help [Ciclico] Fisco, domande varie

    Avatar

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Se non ti va bene passare il vettore come parametro per riferimento, puoi utilizzare una funzione come questa:
    codice:
    #include <iostream>
    
    using namespace std;
    
    int *ritornaVettote();
    
    int main() {
       int *mioVettore;  /* Vettore che verrà restituito dalla funzione */
       int i = 0;
    
       mioVettore = ritornaVettore();
    
       while (mioVettore[i]) {
          cout << "Elemento " << (i+1) << ": " << mioVettote[i];
          i++;
       }
    
       return 0;
    }
    
    int *ritornaVettore() {
       int *nuovo;
       int j = 0;
       nuovo = (int *) malloc(11 * sizeof(int));
       for (j=0; j<10; j++) nuovo[j] = j;
       nuovo[10] = '\0';
    
       return nuovo;
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    mi sa che è meglio che vi posto il codice

    for (int colore2=0; colore2<3; colore2++)
    {
    for (int x=0; x<DIM; x++)
    {
    if (colore2==0)
    {
    leggiVettore(vettoreTemporaneo, immagine);
    }
    else
    {
    leggiVettore(vettoreTemporaneo, immagine); RunLenghtDecoding (vettoreTemporaneo); }
    for (int y=0; y<DIM; y++)
    {
    pixel[colore2]=(char)vettoreTemporaneo[y];
    iplPutPixel(dst,x,y,pixel); }
    }
    }

    il problema che quando sono nell'if vettoreTemporano viene trattato correttamente, ma quano arrivo al for più interno non è più disponibile. se tolgo l'if tutto funziona.
    come mai :master:

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Bisognerebbe vedere anche cosa fanno le funzioni che lo manipolano...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    ti posto solo questa, le altre sono simili

    void leggiVettore(float vettore[DIM], FILE *imm)
    {
    float vettoreAppoggioLettura[DIM];
    for (int a=0; a<DIM; a++)
    {
    vettoreAppoggioLettura[a]=0;
    }

    char speciale[2]="$";
    char buffer1[10];
    char buffer2[10];
    int j=0;

    while (strcmp(buffer1, speciale))
    {
    fscanf(imm,"%s",buffer1);
    }
    while (strcmp(buffer2, speciale))
    {
    fscanf(imm,"%s",buffer2);
    vettoreAppoggioLettura[j]=(float)atof(buffer2);
    j++;
    }
    for (int b=0; b<DIM; b++)
    {
    vettore[b]=vettoreAppoggioLettura[b];
    }
    }

    la funzione legge da un file di testo dove sono contenuti i valori del vettore delimitati da "$"

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non vorrei sbagliarmi, ma dichiarando l'array in questo modo nella funzione non viene passato l'indirizzo, ma viene creata una copia dell'array all'interno. Quindi, tu non modifichi l'array, ma una sua copia. Per poter passare l'array come riferimento devi utilizzare i puntatori.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    allora perchè senza l'if tutto funziona?

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