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