Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2009, 18:22
alien29
 
Fecha de Ingreso: agosto-2007
Mensajes: 2
Antigüedad: 16 años, 8 meses
Puntos: 0
Pregunta Me guarda mal una cadena ingresada por teclado

Hola.. Estoy con un problema y no logro dar con la solución..
La idea es tener un arreglo en donde se guardan datos de Personas. Y que a traves del numero de Documento se pueda modificar el valor que tiene la variable "domicilio"

Código:
# include <stdio.h>
# include <conio.h>
# include <iostream.h> 
# include <string.h>

struct rPersona{
       char* Nombre,*Apellido,*Domicilio;         
       int Dni;
};

void IngresoValores(struct rPersona *vector){
     rPersona aux;
     aux.Nombre = "Diego";
     aux.Apellido = "Totti";         
     aux.Domicilio = "Calle 912";         
     aux.Dni = 222;
     vector[0] = aux;

     aux.Nombre = "Marcos";
     aux.Apellido = "TItto";         
     aux.Domicilio = "Calle 1145";         
     aux.Dni = 888;
     vector[1] = aux;
}

void Buscar(struct rPersona *vector){
     char *domicilio;
     int dni;
     rPersona aux, nuevo;
     printf("Ingrese el DNI a buscar: ");
     scanf("%i",&dni);    
     for (int i=0; i<5; i++){
         aux = vector[i];
         if (aux.Dni == dni){
            printf("Dni encontrado...\n");
            nuevo.Nombre = aux.Nombre;
            nuevo.Apellido = aux.Apellido;
            nuevo.Dni = aux.Dni;
            printf("INGRESE EL NUEVO DOMICILIO: ");
            scanf("%s", domicilio);            
            nuevo.Domicilio =  domicilio;
            vector[i] = nuevo;
            printf("Domicilio actualizado!!!\n");
            getch();         
         }
     }         
}
El problema es que cuando lo muestro, una vez que lo modifique, me muestra caracteres raros en el domicilio modificado. No entiendo como hacer para que la linea: scanf("%s", domicilio) me tome bien el domicilio.

Que estoy haciendo mal?? Estoy definiendo mal alguna variable o la estructura de datos??

Muchas Gracias!!!