Ho provato, ma il problema è che mi crasha ancora quando chiamo la calloc.
Stavolta mi sono fatto una funzione per l' input,ecco il codice:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <time.h>
#include <stdbool.h>
#include <string.h>
char *input(void);
int main(int argc,char **argv)
{
char ***stringmatrix;
int i,j;
stringmatrix=(char***)calloc(5,sizeof(char**));
if(stringmatrix==NULL)
{
printf("Errore, scappa !!!\n");
exit(0);
}
for(j=0;j<5;j++)
{
stringmatrix[j]=(char**)malloc(sizeof(char*));
for(i=0;i<5;i++)
{
stringmatrix[j][i]=input();
}
}
for(j=0;j<5;j++)
for(i=0;i<5;i++)
puts(stringmatrix[j][i]);
return 0;
}
char *input(void)
{
char *buffer,*pointer;
buffer=(char*)calloc(100,sizeof(char)); /*************** qua ****************/
if(buffer==NULL)
{
printf("Errore, scappa !!!\n");
exit(0);
}
fgets(buffer,100,stdin);
pointer=(char*)calloc(strlen(buffer)+1,sizeof(char));
strcpy(pointer,buffer);
free(buffer);
return pointer;
}
Mi sto proprio dimenticando, da segmentation fault, sul GCC du linux nella riga contrassegnata mi segna:
codice:
Program received signal SIGABRT,aborted.
Eppure mi pareva di aver fatto tutto correttamente.