Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: LeoJ24 en 13 Enero 2013, 19:44 pm



Título: Duda con Punteros en C
Publicado por: LeoJ24 en 13 Enero 2013, 19:44 pm
Buenass...
Estoy estudiando los punteros en C y no me queda muy claro como funciona. la idea que tengo de los punteros es que por ej yo tengo:
Citar
int var;
int *punt;
entonces esto significa que *punt apunta a la direccion de var?
y cuando quiera mostrarlo en pantalla tendria que poner esto?:
Citar
printf ("LA DIRECCION DE VAR ES: %d. SU VALOR ES: %i", &punt, var);
esta bien asi¿
Gracias de antemano.
salu2


Título: Re: Duda con Punteros en C
Publicado por: kaiserr en 13 Enero 2013, 20:21 pm
voy hacer memoria xD

....
Los punteros sirven para "enviar y recibir" valores de otras funciones.
Un ejemplo:

Yo tengo la variable "int var" en la funcion "funcion1()" y quiero pasar esa variable a otra funcion y que le de un valor en la "funcion2()".

Código:
#include <stdio.h>

void funcion(int *var){
*var=5;
}

void main(){
int var;
funcion(&var);
printf("%d",var);
getch();
}


Título: Re: Duda con Punteros en C
Publicado por: ameise_1987 en 13 Enero 2013, 20:49 pm
Buenass...
Estoy estudiando los punteros en C y no me queda muy claro como funciona. la idea que tengo de los punteros es que por ej yo tengo:entonces esto significa que *punt apunta a la direccion de var?
y cuando quiera mostrarlo en pantalla tendria que poner esto?:esta bien asi¿
Gracias de antemano.
salu2

haces 2 cosas , declarar un puntero que ALMACENA UNA DIRECCIÓN DE MEMORIA DE UN ENTERO y una VARIABLE ENTERA.

para que ese puntero contenga la dirección de memoria de la variable debes pasarle la dirección de memoria, así .

int *ptr=NULL;
int var=343;

ptr=&var;


con eso ptr apuunta a la dirección de memoria de var, haz el siguiente ejercicio, luego de haber pasado la dirección de memoria a ptr hace un print con el contenido de esa memori *ptr y luego modigica la variable var y haz otro print al contenido de esa dirección de memoria.

2 recomendaciones, la primera que cuándo trabajes con punteros, si no lo utilizas al comienzo ponle como valor NULL , segunda recomendación siempre verifica que los punteros no sean nulos luego de haber ejecutado alguna función que te devuelva un puntero.

saluos!!.