Open WaluiguiVevo opened 2 weeks ago
¿Qué problemas?
Para empezar, recordemos que una función no puede cambiar una variable que se le pasa por parámetro ya que recibe una copia de la misma, ya sea una variable, int, char o int *. Entonces cuando hacés
char *v = NULL;
agrega(v, &dim);
le estás pasando una copia de v que vale NULL. Cuando la función agrega termine v seguirá valiendo NULL. En todo caso podría ser así:
char * agrega(char *v, int *dim)
{
char n;
while ((n = getchar()) != 0) PRECEDENCIA !!!
{
if (*dim % BLOCK == 0)
{
v = realloc(v, sizeof(char) * (BLOCK + *dim));
}
strcpy(v[(*dim)++], toupper(n)); // PRECEDENCIA
}
v = realloc(v, *dim); // NO ES NECESARIO MULTIPLICAR POR sizeof(char)
return v;
}
...
char *v = NULL;
v = agrega(v, &dim);
Muchas gracias Marcelo. Me olvide de eso y disculpa que me colgue con mandar los mensaje de error.
Revisalo completo porque hay varios errores, por ejemplo
n = getchar; faltan paréntesis if (n == "1") "1" es un vector,. es la dirección donde está el '1'
pero sobre todo no te compliques haciendo el menú, las palabras crealas fijas en un vector. Que no haya un menú de opciones ni que el usuario pueda ingresar palabras nuevas
Buenas, Estoy con varios problemas para poder correr este codigo. Pido ayuda por favor.