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

duda con dbles punteros

Estas en el tema de duda con dbles punteros en el foro de C/C++ en Foros del Web. Hola q tal, tengo una duda con los punteros, se q se utliza dobles punteros cuando se apunta a otro apuntador(corrijan me si estoy mal), ...
  #1 (permalink)  
Antiguo 01/10/2010, 18:09
Avatar de Lizy94  
Fecha de Ingreso: diciembre-2009
Mensajes: 149
Antigüedad: 14 años, 3 meses
Puntos: 0
duda con dbles punteros

Hola q tal, tengo una duda con los punteros, se q se utliza dobles punteros cuando se apunta a otro apuntador(corrijan me si estoy mal), y viendo ejemplos por internet me encontré con esto

en un ejemplo con listas simples

void insertarDato (struct lista **ptrLista,dato)//segun entendi es doble puntero xq no puede existir matrices o structs de funciones pero si punteros-a-funcion
{
....
}


y luego para imprimir

void imprimirLista(struct lista *inicioLista)
{
......
}

aquí es donde ya no entiendo por que en void imprimir no utlizan doble punteros como en insertar dato si también es struct
  #2 (permalink)  
Antiguo 01/10/2010, 20:20
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 13 años, 11 meses
Puntos: 228
Respuesta: duda con dbles punteros

No se ve muy bien la implementacion. Pero seguramente se pasa un solo puntero porque solo se recorre e imprime la lista. No es necesario cambiar informacion de la lista.

Estaria bueno que pases la definicion de la lista para ver como esta trabajada. Tambien los dos metodos.
  #3 (permalink)  
Antiguo 01/10/2010, 21:11
Avatar de Lizy94  
Fecha de Ingreso: diciembre-2009
Mensajes: 149
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: duda con dbles punteros

No disculpa, creo ya entendi una parte , a ver corrige me si estoy mal:

este es el menú

Código HTML:
Menu();
 scanf("%d",&opcion);
 while(opcion!=salir){
  switch(opcion){
	case insertar: printf("\nIntroduce un caracter: ");
				  scanf("\n%c",&dato);
				  Insertar(&Comenzar,dato);//paso de variables por referencia
				  ImprimeLista(Comenzar);
				  getch();
				  break;
        case eliminar:
                                 .....
                                 getch();
                                 break;

       default:
                                 .....
                                 getch();
                                 break;
............

y las funciones

para insertar
Código PHP:
void insertarLista(Lista **ptrLista,char dato)
{
  
Lista *nuevo,*anterior,*actual;
  
nuevo=(Lista*)malloc(sizeof(Lista));
  if(
nuevo!=NULL){

    
nuevo->Dato=dato;
    
nuevo->siguiente=NULL;
    
anterior=NULL;
    
actual=*ptrLista;
    while(
actual!=NULL && dato actual->Dato){
    
anterior=actual;
    
actual=actual->siguiente;
    }
    if(
anterior==NULL){


    
nuevo->siguiente=*ptrLista;
    *
ptrLista=nuevo;
    }
    else{
    
anterior->siguiente=nuevo;
    
nuevo->siguiente=actual;
    }
  }
  else 
printf("%c no insertado.No hay memoria suficiente.\n",dato);

y para mostrar

Código PHP:
void imprimeLista(Lista *actual)
{
 if(
actual==NULL)
  
printf("La lista esta vacia.\n");
 else{
    
printf("La lista es:\n");
    while(
actual!=NULL){
    
printf("%c --> ",actual->Dato);
    
actual=actual->siguiente;
    }
    
printf("NULL\n\n");
 }

lo q sigo sin entender si es paso de valores por referencia por q el segundo asterisco
  #4 (permalink)  
Antiguo 02/10/2010, 06:35
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 13 años, 11 meses
Puntos: 228
Respuesta: duda con dbles punteros

Como esta hecha esta lista. Una variable puntero lista siempre lleva memoria del primer elemento.

Se inserta ordenado, por lo que existe la posibilidad de ingresarlo primero. Si esto ocurre tenes cambiar el el puntero al objeto. Por eso se necesita los dos punteros. Porque no solo modificas los datos de las listas, sino modificas el puntero al primer elemento.

En cambio para imprimir solo se necesita el puntero al elemento para poder imprimirlo y seguir la cadena.
  #5 (permalink)  
Antiguo 02/10/2010, 15:13
Avatar de Lizy94  
Fecha de Ingreso: diciembre-2009
Mensajes: 149
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: duda con dbles punteros

cierto no lo había visto así, mil gracias ;)

Etiquetas: punteros
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 03:26.