This is an extension to my previous query - array of string pointers in C
I have this working sample code in C
int main(void)
{
char *array1 = "12345";
char *array2 = "abcde";
char *array3 = "67890";
char *array4 = "fghij";
char *array_2d[4];
array_2d[0] = array1;
array_2d[1] = array2;
array_2d[2] = array3;
array_2d[3] = array4;
int i,j;
for(i = 0; i<=3 ; i++ ) {
for(j = 0; j<=4 ; j++) {
printf("%c", array_2d[i][j]);
}
printf("\n");
}
}
I would like to de-reference
*array1 to *array4
i.e.
array_2d[0] -> "12345"
....
array_2d[3] -> "fghij"
and not
array_2d[0] -> array1 -> "12345"
....
array_2d[3] -> array4 -> "fghij"
Is this possible ? I would maybe like to increase array_2d to [8] and say
array_2d[4] -> array1 -> "ABCDE"
....
array_2d[7] -> array4 -> "FGHIJ"
I hope this seems clear....
EDIT -
I think i got it. This is what i was trying to do.
char *array1 = "12345";
char *array2 = "abcde";
char *array3 = "67890";
char *array4 = "fghij";
char *array_2d[8];
array_2d[0] = array1;
array_2d[1] = array2;
array_2d[2] = array3;
array_2d[3] = array4;
array1 = "AAAAA";
array2 = "BBBBB";
array3 = "CCCCC";
array4 = "DDDDD";
array_2d[4] = array1;
array_2d[5] = array2;
array_2d[6] = array3;
array_2d[7] = array4;
array_2dis not a 2D array at all - it's a 1D array of pointers. What does your notationarray_2d[0] -> array1 -> "12345"mean?array1points to, because it's a literal. You can reassignarray1to point to a different array, that doesn't affectarray_2d[0].