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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


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


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda direcciones de memoria C
« Respuesta #10 en: 18 Julio 2013, 16:28 pm »

No me había dado cuenta de ese detalle... también es cierto que evito ese tipo de declaraciones.

bueno ojo OxDani

Código
  1. void main( )
  2. {
  3.  int* a, b;
  4.  
  5.  b = 1;
  6.  a = &b;
  7.  b = a;
  8. }

resultado:

error: C2440: '=' : cannot convert from 'int *' to 'int'
There is no context in which this conversion is possible


En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Duda direcciones de memoria C
« Respuesta #11 en: 18 Julio 2013, 16:28 pm »

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int* px, py;
  6.    int *pz, x=1, y=2, z=3;
  7.  
  8.    px = &x;
  9.    py = &y;
  10.    pz = &z;
  11.  
  12.    printf("%X  %X  %X", px, py, pz);
  13.    printf("\n%d  %d  %d", x, y, z);
  14.    return 0;
  15. }
  16.  

Según este codigo, lo que dice Oblivi0n es verdad


En línea

Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: Duda direcciones de memoria C
« Respuesta #12 en: 18 Julio 2013, 16:32 pm »

Para programar en C hace falta un poco mas que conocer el lenguaje  ;)
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Duda direcciones de memoria C
« Respuesta #13 en: 18 Julio 2013, 16:36 pm »


De ese link:

Código
  1. int* p, p2;  // declares a pointer to int and a regular int
  2. int *p, *p2; // declares two pointers to int

De todas formas, por muy bueno que sea el foro Stack Overflow, no es una referencia fidedigna para este tipo de debates.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda direcciones de memoria C
« Respuesta #14 en: 18 Julio 2013, 16:40 pm »

Para programar en C hace falta un poco mas que conocer el lenguaje  ;)

Yo más bien diría que lo suyo es no optar por código tan peregrino y, visto lo visto, tan propenso a segundas interpretaciones.
En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Duda direcciones de memoria C
« Respuesta #15 en: 18 Julio 2013, 16:43 pm »

A ver que no me entero de una, entonces si hacemos esto:

Código
  1. int* ptr1,ptr2,ptr3;

El unico puntero que hay aqui es ptr1, no?
En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda direcciones de memoria C
« Respuesta #16 en: 18 Julio 2013, 16:53 pm »

Si puedes evitar este tipo de líneas mejor. Por lo que he podido ver en este hilo depende del compilador a utilizar...

En un programa la claridad es un factor clave.

Mejor lo dejas así:

Código
  1. int *ptr1, *ptr2, *ptr3;

Que compila y te quitas de problemas.


En línea

Caster


Desconectado Desconectado

Mensajes: 786


Ver Perfil WWW
Re: Duda direcciones de memoria C
« Respuesta #17 en: 18 Julio 2013, 16:54 pm »

Vale, muchas gracias
En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Duda direcciones de memoria C
« Respuesta #18 en: 18 Julio 2013, 17:09 pm »

A ver, al compilar este programa con gcc 4.7.2:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int* a, b;
  6. int c;
  7.  
  8. b =  &c;
  9.  
  10. printf("0x%x\n", b);
  11.  
  12. return 0;
  13. }

me salta este aviso:


Cita de: gcc
/home/dani/Escritorio/pointers_test.c:8:4: aviso: la asignación crea un entero desde un puntero sin una conversión [activado por defecto]

De lo que se deduce que b es un entero, y no un puntero.

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Duda direcciones de memoria C
« Respuesta #19 en: 18 Julio 2013, 17:11 pm »

A ver, al compilar este programa con gcc 4.7.2:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. int* a, b;
  6. int c;
  7.  
  8. b =  &c;
  9.  
  10. printf("0x%x\n", b);
  11.  
  12. return 0;
  13. }

me salta este aviso:


De lo que se deduce que b es un entero, y no un puntero.

Saludos.

Vale, entonces te pasa lo mismo que a mi compilando con msvc
En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines