Utilizziamo cookie tecnici e di profilazione (anche di terze parti) per migliorare la tua esperienza su questo sito. Continuando la navigazione accetti l'utilizzo dei cookie; in alternativa, leggi l'informativa e scopri come disabilitarli.

E' necessario definire una procedura che allochi un vettore. In tal caso l’indirizzo del vettore deve subire una modifica nella procedura (deve assumere il valore fornito dalla funzione malloc()). Si consideri il seguente esempio:

#include <stdio.h>
#include <stdlib.h>

void AllocaVett (float **p, unsigned int dim){
      *p=(float *)malloc(dim*sizeof(float));


main(){
  float * vettore;
unsigned int n; 
vettore=NULL;
  n=5;    
AllocaVett(&vettore,n);
}
 
Ma una alternativa migliore e' la seguente, che non fa uso del parametro formale e trasforma la procedura in funzione:
#include <stdio.h>
#include <stdlib.h>

float * AllocaVett (unsigned long dim){
       return (float *)malloc(dim*sizeof(float));
}

main(){
float * vettore;
unsigned long n;    
vettore=NULL;    
n=5;
  vettore=AllocaVett(n);
}