Salve a tutti!
Ho un problema con questo codice:
Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 3
#define MAX 2048
int main(){
char ** arrey;
char* stringa="prova";
int i;
arrey=(char**)malloc(N*sizeof(char*));
arrey[0]=(char*)malloc(sizeof(stringa));
strncpy(arrey[0],stringa,MAX);
arrey[1]=(char*)malloc(sizeof("pino"));
strncpy(arrey[1],"pino",MAX);
arrey[2]=(char*)malloc(sizeof("\n"));
strncpy(arrey[2],"\n",MAX);
arrey[3]=(char*)malloc(sizeof("fuori"));
strncpy(arrey[3],"fuori",MAX);
for(i=0;i<N;i++)
printf("%s\n",arrey[i]);
fflush(stdout);
arrey=realloc(arrey,sizeof(char*)+sizeof(arrey));
arrey[4]=(char*)malloc(sizeof("NUOVO"));
strncpy(arrey[4],"NUOVO",MAX);
for(i=0;i<(N+1);i++)
printf("%s\n",arrey[i]);
return 0;
}
in parole povere vorrei allocare dinamicamente un nuovo elemento nell'array "arrey" con la realloc, ma in esecuzione mi da un errore:
*** glibc detected *** realloc(): invalid next size: 0x0804a008 ***
Abort
consigli?