C Array of Pointers
C Array of Pointers
Before we understand the concept of arrays of pointers, let us consider the following example, which makes use
of an array of 3 integ ers:
#include <stdio.h>
const int MAX = 3;
int main ()
{
int var[] = {10, 100, 200};
int i;
for (i = 0; i < MAX; i++)
{
printf("Value of var[%d] = %d\n", i, var[i] );
}
return 0;
}
When the above code is compiled and executed, it produces the following result:
Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200
T here may be a situation when we want to maintain an array, which can store pointers to an int or char or any other
data type available. Following is the declaration of an array of pointers to an integ er:
int *ptr[MAX];
T his declares ptr as an array of MAX integ er pointers. T hus, each element in ptr, now holds a pointer to an int
value. Following example makes use of three integ ers, which will be stored in an array of pointers as follows:
#include <stdio.h>
const int MAX = 3;
int main ()
{
int var[] = {10, 100, 200};
int i, *ptr[MAX];
for ( i = 0; i < MAX; i++)
{
ptr[i] = &var[i]; /* assign the address of integer. */
}
for ( i = 0; i < MAX; i++)
{
printf("Value of var[%d] = %d\n", i, *ptr[i] );
}
return 0;
}
When the above code is compiled and executed, it produces the following result:
Value of var[0] = 10
Value of var[1] = 100
Value of var[2] = 200
You can also use an array of pointers to character to store a list of string s as follows:
#include <stdio.h>
const int MAX = 4;
int main ()
{
char *names[] = {
"Zara
"Hina
"Nuha
"Sara
};
int i = 0;
Ali",
Ali",
Ali",
Ali",
When the above code is compiled and executed, it produces the following result:
Value
Value
Value
Value
of
of
of
of
names[0]
names[1]
names[2]
names[3]
=
=
=
=
Zara
Hina
Nuha
Sara
Ali
Ali
Ali
Ali