Am trying to reallocate a 4x2 matrix to a 6x4 matrix. There is no memory fault but the original values are not retained.
Can someone please tell me if am messing something:
Code:
int **K1,**K2;
int i,j,Col=2,Row=4;
K1 = (int **) calloc(Row,sizeof(int **));
for (i=1;i<=Row;i++)
K1[i] = (int *) calloc(Col,sizeof(int));
for(i=1;i<=Row;i++)
{
for(j=1;j<=Col;j++)
{
K1[Row][Col] = i+j;
printf("%d \t",K1[Row][Col]);
}
printf("\n");
}
if ((K2 = (int **) realloc(K1,Row+2)) == NULL)
printf("ERROR");
else
K1 = K2;
for(i=1;i<=Row;i++)
{
if ((K2[i] = (int *) realloc(K1,Col+2)) == NULL)
printf("\n\n Error...");
else
K1[i] = K2[i];
}
for(i=Row+1;i<=Row+2;i++)
K1[i] = (int *) calloc(Col+2,sizeof(int));
printf("\n");
for(i=1;i<=Row+2;i++)
{
for(j=1;j<=Col+2;j++)
{
//K1[Row][Col] = i+j;
printf("%d \t",K1[Row][Col]);
}
printf("\n");
}
Output:
2 3
3 4
4 5
5 6
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0