Hola compañeros, tengo una gran duda sobre los punteros... ¿Es posible almacenar la direccion de memoria de un puntero * en un puntero *** o uno ** a *** y que estos sean arreglos? De ser posible, ¿Cómo accedo a sus valores? :P
Así...
int* p1; // lo inicializamos con el operador new...
int** p2; // lo inicializamos con operador new y sus respectivos ciclos...
int*** p3;
p3 = p1;
p3 = p2;
Hola,
Mira aquí tienes un ejemplo de usos de punteros:
#include <stdio.h>
int main()
{
int a = 5, b = 10, c = 20, d = 40;
int *p1; // Puntero a entero
int *p2[2]; // Array de punteros a enteros
int *p3[2][2]; // Array de array de punteros a enteros
p1 = &a;
printf("*p1 = %d\n", *p1); // imprime 5
p2[0] = &a; p2[1] = &b;
printf("*p2[0] = %d, *p2[1] = %d\n", *p2[0], *p2[1]); // imprime 5, 10
printf("**p2 = %d, *(*p2+1) = %d\n", **p2, *(*p2+1)); // imprime 5, 10
p3[0][0] = &c; p3[1][1] = &d;
printf("*p3[0][0] = %d, *p3[0][1] = %d\n", *p3[0][0], *p3[1][1]); // imprime 20, 40
printf("***p3 = %d, **(*(p3+1)+1) = %d\n", ***p3, **(*(p3+1)+1)); // imprime 20, 40
return 0;
}
En el caso de que fuera usando memoria dinámica, es lo mismo solo que tendrías que reservar la memoria antes, claro.
Saludos!
que buen ejemplo, bastante claro, aunque me deja pensando como trabajaria para archivos,