Why is there Segmentation fault(core dumped).
#include <stdio.h>
#include <stdlib.h>
int main()
{
int **a = malloc(10*sizeof(int*));
if( a == NULL )
{
printf("Failed to allocate memory\n");
return 8;
}
for(int i = 0; i < 10; i++)
{
*(a+i) = malloc(10*sizeof(int));
if( (*a+i) == NULL )
{
printf("Failed to allocate memory\n");
for(int i = 0; i < 10; i++)
{
free(*(a+i));
}
free(a);
return 8;
}
}
for (int i = 0; i < 10; i++)
{
for(int j = 0; j < 10; j++)
{
*(*a+j+i) = (i+1)*(j+1);
}
}
for (int i = 0; i < 10; i++)
{
for(int j = 0; j < 10; j++)
{
if(*(*a+i+j)<100)
{
if(*(*a+i+j)<10)
{
printf(" %d ", *(*a+i+j));
}
else
{
printf(" %d ", *(*a+i+j));
}
}
else
{
printf("%d ", *(*a+i+j));
}
}
printf("\n");
}
for(int i = 0; i < 10; i++)
{
free(*(a+i));
}
free(a);
return 0;
}