perchè va in segmentation fault..devo dare questa risp
codice:
#include <stdio.h>
#include <malloc.h>

extern int Alloca(char *p, int iSize);  // Riceve un puntatore a un vettore di caratteri e la sua dimensione

void main(void){

        int iRet;       // Valore ritornato dalla funzione Alloca
        char *p;        // puntatore all'array di caratteri

        /* Passa il puntatore all'array di carattere e il numero di caratteri da allocare alla funzione Alloca() e
           metti in iRet il valore ritornato */
        iRet = Alloca(p, 100);

        if(iRet != 0)           // Se la funzione Alloca non riesce ad allocare la memoria
                exit(1);        // esci dando un errore al sistema operativo

        strcpy(p, "Buongiorno!!!");     // altrimenti copia la stringa nel vettore
}

int Alloca(char *p, int iSize){

        p = (char *) malloc(iSize);     // Alloca la memoria per l'array di caratteri e attribuisci il valore a p
        if(!p){                         // Se p corrisponde a NULL malloc() non è riuscita ad allocare la memoria
                printf("Errore di allocazione memoria !!!\n");
                return(-1);             // Ritorna il valore -1 al chiamante
        }

        strcpy(p, "Ciao amico");        // Altrimenti copia la stringa nel vettore puntato da p
        return(0);                      // e ritorna il valore 0 al chiamante
}
urgente