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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  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 2,447 veces)
naderST


Desconectado Desconectado

Mensajes: 625



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

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

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    int i;
  7.  
  8.    for(i=1;i<=2;i++){
  9.        char * buffer = (char*)malloc(20);
  10.        printf("%d\n", &buffer);
  11.    }
  12.  
  13.    return 0;
  14. }
  15.  

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.714


Nie Dam Sie


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

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
  1. for(i=0;i<2;i++){
  2. char * buffer = (char*)malloc(20);
  3. printf("%d\n", buffer);
  4. }
  5.  

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: 625



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

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
  1. for(i=0;i<2;i++){
  2. char * buffer = (char*)malloc(20);
  3. printf("%d\n", buffer);
  4. }
  5.  

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
Red con misma DNS diferentes Puertas de enlace
Redes
salleurl 4 10,884 Último mensaje 8 Mayo 2010, 06:46 am
por carluchyn
Como instalar 2 OS en diferentes HDD en la misma pc
Windows
Farahon3 5 7,898 Último mensaje 9 Octubre 2011, 21:55 pm
por Farahon3
Velocidad 2 Proyectos diferentes o Todo en una misma solucion??
.NET (C#, VB.NET, ASP)
rigorvzla 2 3,073 Último mensaje 23 Diciembre 2017, 04:15 am
por rigorvzla
Acomodar posiciones de memoria
Programación General
LuckBen 3 2,452 Último mensaje 1 Octubre 2018, 19:06 pm
por MCKSys Argentina
Misma identidad - diferentes areas
Diseño Gráfico
valerian 1 98,739 Último mensaje 19 Septiembre 2023, 10:31 am
por idpostbox
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines