Diferencias de punteros...

Hola, soy de venezuela, estoy haciendo un proyecto de cambiar de lenguaje plm a c.Tengo una duda respecto a los punteros.En que se diferencian un puntero simple que apunta a otro puntero y un doble puntero. Algo así:
int X;
int *pun1=&x;
int *punt2=punt1; ********
int **punt3=punt1; ********
¿Es igual o no las lines que están con arterisco? Quisiera que me explicaras bien para que uso yo los punteros dobles.
Otra pregunta. Yo puedo hacer ésto:
void *punt1;
int **punt2=(int**)&punt1;
¿Esta bien esta declaración? ¿El cast de doble punteros es así? ¿Y el direccionamiento? ¿A qué equivale esta declaración respecto a las de arriba?
Te agradezco mucho la respuesta...
Respuesta
1
No son iguales. Un puntero doble es un puntero a un puntero. Al igualn que no es lo mismo un arrray que un array de array's. La segunda linea de *'s es una variable cuyo valor es una posición de memoria en la que hay otra dirección de memoria.
Los dobles punteros por ejemplo sirven para crear punteros a cadenas (char*) de forma que tengas arrays de cadenas. char* es una cadena char** es un array de cadenas.
void *punt1;
int **punt2=(int**)&punt1
No lo he probado pero parece lógico, mejor si cambias el void por int, así no te hará falta ni el cast.
Ahora te toca a ti satisfacer mi curiosidad. ¿Cómo esta la dituacionpolitica en Venezuela?. ¿Me podrías informar de 1ª mano?. Uno tiene sus curiosidades.
Si tienes más dudas vuelve a preguntar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas