Autor Tema: [SOLUCIONADO]Más dudas con punteros a variables  (Leído 2202 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 805
    • https://electronicadicto.wordpress.com/
[SOLUCIONADO]Más dudas con punteros a variables
« en: 04 de Junio de 2015, 09:23:28 »
Buenas, tengo una duda con los dichosos punteros.
Estoy trabajando con C18

Si declaro una variable puntero dentro de una función para almacenar un dato, por ejemplo:

Código: [Seleccionar]
void leervalor(){
    double *temperatura = NULL;
.......
.........
}


 ¿Podría acceder al valor almacenado dentro de esa variable (temperatura) desde otra función diferente que esté en otra parte del programa?
« Última modificación: 11 de Junio de 2015, 09:28:25 por Thulsa Doom »
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Más dudas con punteros a variables
« Respuesta #1 en: 04 de Junio de 2015, 13:12:08 »
Citar
¿Podría acceder al valor almacenado dentro de esa variable (temperatura) desde otra función diferente que esté en otra parte del programa?

Version corta: No!
Por ser un puntero a una variable local a la funcion.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Más dudas con punteros a variables
« Respuesta #2 en: 04 de Junio de 2015, 13:47:32 »
Asi como dice RALF2 al ser delaclarada dentro de la funcion el "scope" o alcance de la variable es de solo es funcion.

Distinto es si declaras la variable global y luego usas un puntero a esa variable

Código: C
  1. int Var_global[50];
  2.  
  3.  
  4. void Funcion(void){
  5.  
  6. int *my_puntero;
  7. my_puntero = Var_global;
  8.  
  9. //El valor de *my_puntero es lo mismoq ue Var_global[0];
  10.  
  11. }

La otra es pasarlo como argumento si es que pertenece a otra funcion

Código: C
  1. void main(void) {
  2.  
  3. int mi_vector[50];
  4.  
  5. Funcion(mi_vector); //Podria haber usado tambien &mi_vector[0];
  6.  
  7. }
  8.  
  9. void Funcion(int *puntero) {
  10.  
  11. // puntero tiene el valor de la direccion de mi_vector[0]
  12. // *puntero tiene el contenido de  mi_vector[0]
  13.  
  14. }

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2062
Re: Más dudas con punteros a variables
« Respuesta #3 en: 04 de Junio de 2015, 18:17:33 »
Para mi el ultimo caso expuesto por el amigo KILLERJC, es de seguro el que te puede servir para lo que quieres Thulsa Doom   :mrgreen:

Saludos

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 805
    • https://electronicadicto.wordpress.com/
Re: Más dudas con punteros a variables
« Respuesta #4 en: 05 de Junio de 2015, 03:57:03 »
Gracias entendido.
¿Y para que sirve hacerle un puntero a una variable global?, para usas la variable directamente y listo ¿no?
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Más dudas con punteros a variables
« Respuesta #5 en: 05 de Junio de 2015, 04:47:29 »
Gracias entendido.
¿Y para que sirve hacerle un puntero a una variable global?, para usas la variable directamente y listo ¿no?

Exacto, para nada xD, lo hice luego lo pense y ya habia contestado RALF, asi que no lo iba a modificar :P

Desconectado Thulsa Doom

  • PIC24F
  • *****
  • Mensajes: 805
    • https://electronicadicto.wordpress.com/
Re: Más dudas con punteros a variables
« Respuesta #6 en: 05 de Junio de 2015, 05:48:30 »
Oook, la duda salio al ver un código de arduino que hacía una cosa rara de esas, pero bueno modifique el código y ya trabaja en C18, la verdad que eso de que cambien el estándar en cada compilador me jode un huevo..... :5].

gracias a todos
Más códigos y desarrollos en https://electronicadicto.wordpress.com/ date una vuelta y curiosea un rato...