ciao...

a me il codice sembra corretto! eppure:

codice:
#include <stdio.h>
#include <unistd.h>
#include <time.h>

void scambia(int*,int*);
void crea_array(int *,int);
void riempi_array(int *,int);
void stampa_array(int *,int);

int main(){

  int *vett;
  int dim;

  printf("dimensione array?\n");
  scanf("%i",&dim);
  crea_array(vett,dim);
  riempi_array(vett,dim);
  stampa_array(vett,dim);


  return 0;
}

void scambia(int* a,int* b){
  int *temp;
  temp=a;
  a=b;
  b=temp;
}

void crea_array(int *a,int n){

  a=(int *)malloc(sizeof (int)*n);
}

void riempi_array(int *a, int n){

  int i=0;
  int seme=time(NULL);
  srand(seme);

  for(i=0;i<n;i++){
    a[i]=rand()%100;
  }
}

void stampa_array(int *a,int n){
  int i=0;
  for(i=0;i<n;i++){
    printf("valore elemento %i=\n",i);
  }
}
output del programma:
dimensione array?
10
valore elemento 0=
valore elemento 1=
valore elemento 2=
valore elemento 3=
valore elemento 4=
valore elemento 5=
valore elemento 6=
valore elemento 7=
valore elemento 8=
valore elemento 9=
Segmentation fault

??? perchè?