elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el ttwitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Punteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Punteros  (Leído 1,224 veces)
cNoob

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Punteros
« en: 27 Junio 2016, 20:32 pm »

Hola!
He estado aprendiendo sobre los punteros pero no se en que se usan, no les veo una utilidad real. Alguien podría explicarme de que modo se usan en un programa y si es posible un pequeño ejemplo?
Gracias.


En línea

Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.609


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Punteros
« Respuesta #1 en: 27 Junio 2016, 20:43 pm »

Hola, los punteros es uno de los topics mas dificil de aprender pero a su vez es una de las herramientas mas utiles en C.

De hecho en mi opinion personal yo no le veo utilidad a los arreglos estaticos... en fin es mi mera opinion.

Imagina que tienes que capturar una cantidad desconocida de datos de un mismo tipo.

Que haces declaras un arreglo... pero cuantos datos reservas? 100? 1000? un millon?

Que pasa si el usuario solo ingresa 2? habras desperdiciado memoria!!! Que pasa si el usuario ingresa 2 millones de datos? no te alcanzara!!!  entonces cual es la solucion??? El uso de apuntadores y memoria dinamica.

Un ejemplo?

Te dejo uno de mis videos donde hablamos de la estrucutra de dator Arbol binario y como los punteros nos ayudan a cargar una cantidad variable de datos.



En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
cNoob

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Punteros
« Respuesta #2 en: 27 Junio 2016, 20:57 pm »

No entiendo algunas cosas del video debido a que aun no se mucho de c++, pero aun asi tu ejemplo me sirvió para entender en que se pueden usar, gracias :D
En línea

Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.609


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Punteros
« Respuesta #3 en: 27 Junio 2016, 21:10 pm »

Aqui te dejo un ejemplo como el descrito, el ejemplo genera un arreglo de enteros y los llena con valor random hasta que el valor random coincida con 20000

Saludos!

Código
  1. #include<stdlib.h>
  2. #include<stdio.h>
  3. #include<time.h>
  4.  
  5.  
  6. int main() {
  7. int *arreglo = NULL;
  8. unsigned int i = 0;
  9. srand(time(NULL)); //Inicilizamos la semilla aleatoria
  10. do {
  11. arreglo =(int*) realloc(arreglo,(i+1)*sizeof(int)); //reservamos para i+1 elementos
  12. arreglo[i] = rand(); //Guardamos un numero random en arreglo[i]
  13. printf("Guardando %i en el arreglo posicion [%lu]\n",arreglo[i],i);
  14. i++; //Incrementamos contador
  15. }while(arreglo[i-1] != 20000); //Continuamos hasta que el numero sea 20000
  16. printf("Se guardardon %lu elementos\n",i);
  17. return 0;
  18. }
  19.  

« Última modificación: 28 Junio 2016, 14:19 pm por AlbertoBSD » En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
cNoob

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Punteros
« Respuesta #4 en: 27 Junio 2016, 21:18 pm »

En la linea 7 has puesto "int *arreglo = NULL;" que hace el igualarlo a NULL? lo he visto varias veces y no se que es...
En línea

Wannabe programador autodidacta de c++
"Usain Bolt comenzó gateando."
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.609


🏴 Libertad!!!!!


Ver Perfil WWW
Re: Punteros
« Respuesta #5 en: 27 Junio 2016, 21:26 pm »

Todas las variables se deben de inicializar.

Se inicializa en NULL para indicar que no esta apuntado a NADA.

Y realloc valida que si esta en NULL genera un nuevo apuntador.

Saludos!



Hice un video de este tema

« Última modificación: 29 Junio 2016, 17:30 pm por AlbertoBSD » En línea

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
punteros
Programación Visual Basic
bautistasbr 4 1,427 Último mensaje 30 Septiembre 2005, 19:35 pm
por NYlOn
Duda Punteros Dobles/Array de punteros
Programación C/C++
MisterJava 2 3,832 Último mensaje 30 Diciembre 2012, 20:19 pm
por MisterJava
Punteros dobles / Punteros a puntero.
Programación C/C++
NOB2014 5 4,233 Último mensaje 13 Abril 2016, 16:00 pm
por MAFUS
Punteros en c++ « 1 2 »
Programación C/C++
Julia13 12 2,703 Último mensaje 7 Junio 2021, 15:11 pm
por H4cker K
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines