Disadvantages of Array of Pointers

The array of pointers also has its fair share of disadvantages and should be used when the advantages outweigh the disadvantages. Some of the disadvantages of the array of pointers are:

  • Higher Memory Consumption: An array of pointers requires more memory as compared to plain arrays because of the additional space required to store pointers.
  • Complexity: An array of pointers might be complex to use as compared to a simple array.
  • Prone to Bugs: As we use pointers, all the bugs associated with pointers come with it so we need to handle them carefully.


Array of Pointers in C

In C, a pointer array is a homogeneous collection of indexed pointer variables that are references to a memory location. It is generally used in C Programming when we want to point at multiple memory locations of a similar data type in our C program. We can access the data by dereferencing the pointer pointing to it.

Syntax:

pointer_type *array_name [array_size];

Here,

  • pointer_type: Type of data the pointer is pointing to.
  • array_name: Name of the array of pointers.
  • array_size:  Size of the array of pointers.

Note: It is important to keep in mind the operator precedence and associativity in the array of pointers declarations of different type as a single change will mean the whole different thing. For example, enclosing *array_name in the parenthesis will mean that array_name is a pointer to an array.

Example:

C




// C program to demonstrate the use of array of pointers
#include <stdio.h>
 
int main()
{
    // declaring some temp variables
    int var1 = 10;
    int var2 = 20;
    int var3 = 30;
 
    // array of pointers to integers
    int* ptr_arr[3] = { &var1, &var2, &var3 };
 
    // traversing using loop
    for (int i = 0; i < 3; i++) {
        printf("Value of var%d: %d\tAddress: %p\n", i + 1, *ptr_arr[i], ptr_arr[i]);
    }
 
    return 0;
}


Output

Value of var1: 10    Address: 0x7fff1ac82484
Value of var2: 20    Address: 0x7fff1ac82488
Value of var3: 30    Address: 0x7fff1ac8248c

Explanation:

 

As shown in the above example, each element of the array is a pointer pointing to an integer. We can access the value of these integers by first selecting the array element and then dereferencing it to get the value.

Similar Reads

Array of Pointers to Character

...

Array of Pointers to Different Types

One of the main applications of the array of pointers is to store multiple strings as an array of pointers to characters. Here, each pointer in the array is a character pointer that points to the first character of the string....

Application of Array of Pointers

...

Disadvantages of Array of Pointers

...