Foros del Web » Programación para mayores de 30 ;) » Programación General »

inicializar un puntero con otro en c???

Estas en el tema de inicializar un puntero con otro en c??? en el foro de Programación General en Foros del Web. Tengo un problema/duda. tengo 2 punteros de tipo mmm digamos que char para guardar la tradicion. char *a, *b; bueno si hago esto: b=a; a=(char ...
  #1 (permalink)  
Antiguo 13/06/2005, 18:16
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
inicializar un puntero con otro en c???

Tengo un problema/duda.

tengo 2 punteros de tipo mmm digamos que char para guardar la tradicion.

char *a, *b;

bueno si hago esto:

b=a;
a=(char *)malloc(sizeof(char)*10);
b tambien quedara inicializada?

Hago esto porque me paso que haciendo unas listas enlazadas uso un for asi:
j_list es el puntero inicial de la lista que esta como NULL
Cita:
for(j_temp=j_list; j_temp!=NULL; j_temp=j_temp->next)//Go through
;
j_temp=(JUMPS *)malloc(sizeof(JUMPS));//Malloc memory
j_temp->next=NULL;
esto recorre la lista hasta el final y agrega un nuevo elemento.
El problema con esto es que segun la depuracion, j_temp siempre me da NULL eso quiere decir que j_list no cambio su valor de NULL, es nomal esto o puede que tenga otro bug por ahi que me heche a perder esot.

Saludos
  #2 (permalink)  
Antiguo 13/06/2005, 22:57
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años
Puntos: 17
No, vamos a ver...

a no queda "inicializado", el concepto de puntero le tienes mal.

Tú has reservado una zona de memoria, y la estás apuntando con a. Después también con b. En resumen, es la misma variable. La zona en memoria es lo que inicializas, los punteros no contienen memoria.

El código va al final de la lista y se supone que crea un nuevo elemento, aunque no engancha éste a la lista, así que...

Pero vamos a ver la chapuza. Sea j_list NULL o otra cosa, al inicio del bucle j_temp tendrá su mismo valor. Por lo tanto, j_list tendrá que ser el primer elemento de la lista, ¡¡nunca NULL!!
  #3 (permalink)  
Antiguo 14/06/2005, 00:34
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Instru no es para crear polemica pero es evidente que te falta pulir un poco este tema.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #4 (permalink)  
Antiguo 14/06/2005, 08:14
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Si, de plano.
Hace tiempo que no trabajo con punteros y ahorita que necesito hacerlo, pues ya veis.
Bueno, pues tengo un problema mas dificil con esto de los punteros y listas enlazadas. Muy muy basico, pero no se porque estoy mal.O igual esta vez si estoy bien.

Miren, como les dije quiero crear una lista enlazada, para irle agregando info cada vez que sea necesario. Bueno para esto tengo el j_list y el r_list que son punteros a tipos de datos diferentes iniciados a NULL(al comenzar el programa apuntan a null osea a nada). Despues bajo la funcion donde se aumentan nodos y se llenan de datos tengo algo asi:

Cita:

if(j_list==NULL)
{
j_list=(JUMPS *)malloc(sizeof(JUMPS));
//Aqui se llena de datos cada elmento
j_list->next=NULL;
}
else
{
for(j_temp=j_list->next; j_temp!=NULL; j_temp=j_temp->next)//Go through
{
;
}
j_temp=(JUMPS *)malloc(sizeof(JUMPS));//Malloc memory
//Aqui se llena de elementos
j_temp->next=NULL;
}
Esto no esta funcionando como me deberia, igualmente estoy haciendo algo mal con los punteros. El j_temp como su nombre lo indica es un puntero del mismo tipo que que j_list y pues es para ayudarnos a llegar al final de la lista y agregarle un nuevo nada.

Haber, en que estare mal?

Saludos
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 11:09.