Problema Funzioni e Array

di Anonimizzato9664 il
1 risposte
Mmm...la dimensione degli array mi mette un pochino in difficoltà.

Se io per esempio ho:

int stampa_array(int Tot, int array[Tot])
{
int i;
for(i=0;i<Tot;i++)
    {printf("%d\n", array[i]);}
}

int main() {
int Dimensione;
scanf("%d", &Dimensione);
int i, array[Dimensione];
for(i=0; i<Dimensione; i++)
   {scanf("%d", &array[i]);
   }
stampa_array(Dimensione, array);
return 1;
}
In pratica mi serve una funzione che prenda un array come parametro, ma la dimensione di questo array la so solo nel main. Ovviamente la versione che ho scritto io non funziona.

Ah, so che la dimensione <= 1 000 000.

1 Risposte

  • Se la dimensione lo sai solo a run-time devi usare l'allocazione dinamica.
    
    int *array = NULL;
    int Dimensione = 0;
    scanf("%d", &Dimensione);
    array = (int *)malloc(Dimensione * sizeof(int));
    ..........
    free(array);
    
    la funzione sarà del tipo
    
    void stampa_array(int Tot, int array[]);
    
Devi accedere o registrarti per scrivere nel forum
1 risposte