ciao a tutti, volevo capire come mai mettendo del codice in una funzione e richiamando quella funzione non va, mi da un errore di realloc, mentre lasciandolo nel main è tutto perfettamente fuznionante.. vi copio il codice
codice:
int p[2];
pipe(p);
int isfork;
isfork = fork();
if(isfork == 0){
dup2(p[1],1);
close(p[0]);
char *args[2] = { "date", NULL };
execvp (args[0], args);
}
else
{
char c;
char *stringa = malloc(sizeof(char *));
int i = 0;
dup2(p[0],0);
close(p[1]);
while( read(p[0],&c,sizeof(c) ) ){
stringa = realloc(stringa, (i + 1) * sizeof(char *));
i++;
strcat(stringa,&c);
printf("%c",c);
}
printf("%s",stringa);
}
se questo lo metto in una funzione void, o int , o char che sia mi da il seguente errore
*** glibc detected *** realloc(): invalid next size: 0x0804a008 ***
SAborted
non reisco proprio a capire l'errore qual è se funziona nel main.. boh.. ditemi voi.. grazie.