Foros del Web » Programación para mayores de 30 ;) » C/C++ »

punteros en c

Estas en el tema de punteros en c en el foro de C/C++ en Foros del Web. Buenas, tengo el siguiente programita: struct Struct_Node{ ELEM value; struct Struct_Node* nextNode; }; typedef struct Struct_Node* Node; int main(){ Node n=(Node)malloc(sizeof(struct Struct_Node)); n->nextNode=(Node)malloc(sizeof(struct Struct_Node)); Node ...
  #1 (permalink)  
Antiguo 24/07/2012, 19:30
 
Fecha de Ingreso: octubre-2010
Mensajes: 219
Antigüedad: 13 años, 6 meses
Puntos: 2
Pregunta punteros en c

Buenas,

tengo el siguiente programita:



struct Struct_Node{
ELEM value;
struct Struct_Node* nextNode;
};

typedef struct Struct_Node* Node;


int main(){

Node n=(Node)malloc(sizeof(struct Struct_Node));
n->nextNode=(Node)malloc(sizeof(struct Struct_Node));
Node proc=n->nextNode;
n->nextNode=NULL;
printf("%d ",proc); //no imprime NULL
printf("%d ",n->nextNode); //imprime NULL

return 0;
}

No entiendo porque proc no me imprime NULL como si lo hace n->nextNode,hay algo que estoy entendiendo mal y nose...Espero alguna ayuda..

Saludos
  #2 (permalink)  
Antiguo 24/07/2012, 19:44
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: punteros en c

Primero asignas NextNode a proc y luego cambias el valor de nextNode... eso diferencia casi cualquier lenguaje de programacion a C/C++. En C/C++ la memoria la manejas vos... Un puntero no es mas que un simple valor(direccion de memoria)...al asignar NULL a un puntero solo cambias el puntero no los datos...

La memoria re reservaste con malloc siempre va a existir por mas que vos pierdas referencia.

Saludos,

Etiquetas: ayudaconpunteros, punteros, punterosenc
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:03.