elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 00:49  


Tema destacado: ¡Aprende hacking con práctica! - WarZone, el wargame de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Crear la misma variable en diferentes posiciones de memoria
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear la misma variable en diferentes posiciones de memoria  (Leído 283 veces)
naderST


Desconectado Desconectado

Mensajes: 467



Ver Perfil
Crear la misma variable en diferentes posiciones de memoria
« en: 20 Mayo 2011, 00:34 »

No se si es el titulo correcto pero mi duda es la siguiente tengo este código

Código
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
   int i;
 
   for(i=1;i<=2;i++){
       char * buffer = (char*)malloc(20);
       printf("%d\n", &buffer);
   }
 
   return 0;
}
 

Quiero hacer que cada vez que se recorra el for buffer se cree en una diferente posición en la memoria.



En línea
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.710


Nie Dam Sie


Ver Perfil WWW
Re: Crear la misma variable en diferentes posiciones de memoria
« Respuesta #1 en: 20 Mayo 2011, 01:07 »

Se reservan en diferentes posiciones, tu problema es que vos estas viendo la dirección del puntero y no la dirección a la que apunta. La dirección del puntero va a ser siempre la misma porque en el ejemplo que pusiste es una variable local que se encuentra en la pila.

Código
 for(i=0;i<2;i++){
char * buffer = (char*)malloc(20);
printf("%d\n", buffer);
}
 

Ten en cuenta que haciendo esto pierdes todas las referencias anteriores a la ultima por lo tanto pierdes la posibilidad de liberar esa memoria. En todo caso podrías usar un arreglo de punteros.

Saludos


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
naderST


Desconectado Desconectado

Mensajes: 467



Ver Perfil
Re: Crear la misma variable en diferentes posiciones de memoria
« Respuesta #2 en: 20 Mayo 2011, 01:37 »

Se reservan en diferentes posiciones, tu problema es que vos estas viendo la dirección del puntero y no la dirección a la que apunta. La dirección del puntero va a ser siempre la misma porque en el ejemplo que pusiste es una variable local que se encuentra en la pila.

Código
 for(i=0;i<2;i++){
char * buffer = (char*)malloc(20);
printf("%d\n", buffer);
}
 

Ten en cuenta que haciendo esto pierdes todas las referencias anteriores a la ultima por lo tanto pierdes la posibilidad de liberar esa memoria. En todo caso podrías usar un arreglo de punteros.

Saludos


Gracias ;-) la verdad no había pensando eso pero ahora comprendo que era lo que estaba haciendo. :silbar:
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Diferentes valores a variable PHP
Desarrollo Web
Azielito 14 1,766 Último mensaje 12 Enero 2004, 10:14
por Azielito
Posiciones de memoria
Programación General
Blank Demon 2 1,160 Último mensaje 21 Mayo 2004, 05:07
por Blank Demon
XP Y win98 en diferentes HDD en la misma pc
Windows
Lalooh 7 1,047 Último mensaje 19 Febrero 2005, 16:41
por Lalooh
Red con misma DNS diferentes Puertas de enlace
Redes
salleurl 4 4,832 Último mensaje 8 Mayo 2010, 06:46
por carluchyn
Misma tarjeta, misma posición diferentes señales y más
Hacking Wireless
tordoman 8 775 Último mensaje 6 Junio 2006, 00:16
por Armenos
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines