Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/12/2008, 08:49
Avatar de Eternal Idol
Eternal Idol
 
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: problema con c++ funcion gets();

Código:
void cPersona::setNombre(char n)
{
nom[20] = n;
}
Con el codigo anterior lo que haces es que nom[20] sea el caracter n (los elementos de nom de 0 a 19 no son modificados en lo absoluto). Y es un error grave ya que si nom es un array de 20 elementos solo son validos 20 elementos, osea de 0 a 19, 20 es el elemento 21 y esta fuera de los limites del array.

Código:
char cPersona::getNombre(void)
{
return nom[20];
}
Con lo anterior retornas un caracter del array nom (tambien fuera de los limites).

Tendrias que hacer algo como esto:
Código:
void setNombre(char *elNombre) 
{ 
  strncpy (nombre, elNombre, sizeof(nombre) - 1);
}
Código:
char *getNombre() 
{ 
return nombre; 
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO