C Arreglo de punteros
Un arreglo de punteros es un arreglo en el que cada elemento es un puntero a algún tipo de dato.
Un arreglo de punteros almacena un conjunto de punteros, cada puntero puede apuntar a diferentes objetos de datos.
Los arreglos de punteros se utilizan generalmente para manejar múltiples objetos de datos, como arreglos de cadenas u arreglos de otras estructuras de datos complejas.
Veamos un ejemplo que utiliza un arreglo compuesto por 3 enteros:
Ejemplo
Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:
Value of var[0] = 10 Value of var[1] = 100 Value of var[2] = 200
Puede haber un caso en el que queramos que un arreglo almacene punteros a int, char u otros tipos de datos.
A continuación se muestra una declaración de un arreglo de punteros a enteros:
int *ptr[MAX];
Aquí, septrdeclara como un arreglo compuesto por MAX punteros a enteros. Por lo tanto, cada elemento en ptr es un puntero a un valor int. El siguiente ejemplo utiliza tres enteros, que se almacenarán en un arreglo de punteros, como se muestra a continuación:
Ejemplo
Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:
Value of var[0] = 10 Value of var[1] = 100 Value of var[2] = 200
También puede usar un arreglo de punteros a caracteres para almacenar una lista de cadenas, como sigue:
Ejemplo
Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:
Value of names[0] = Zara Ali Value of names[1] = Hina Ali Value of names[2] = Nuha Ali Value of names[3] = Sara Ali
Veamos otro ejemplo sencillo: primero declaramos un arreglo de punteros ptrArray que contiene tres punteros a enteros, luego hacemos que estos punteros apunten a diferentes variables enteras num1, num2 y num3, y finalmente usamos el arreglo de punteros para acceder a los valores de estas variables enteras.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:
Value at index 0: 10 Value at index 1: 20 Value at index 2: 30
Los arreglos de punteros son muy útiles en C, especialmente al manejar estructuras de datos con un número variable de elementos, como arreglos de cadenas asignados dinámicamente o arreglos de estructuras creados dinámicamente.
Otras extensiones
Punteros en C