elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con array de punteros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con array de punteros  (Leído 1,734 veces)
NathanD

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Problema con array de punteros
« en: 26 Marzo 2013, 20:00 pm »

Buenas, mi ejercicio es el siguiente: tengo que guardar un string en un array, y luego decir cuál es la palabra que más se repite. Para ello, he pensado guardar cada palabra en un array de punteros, y luego hacer las comparaciones y tal.

El problema viene cuando intento copiar manualmente caracteres en los arrays de punteros. En el siguiente ejemplo:

Código
  1. void copiarPalabras(char *string, char *palabras[]);
  2. {
  3.         int  i = 0;
  4.         //Para las primeras 10 letras, por ejemplo
  5.         palabras[0] = (char*) malloc(10 * sizeof(char) );
  6.  
  7.        while( *(string+ i) != ' ' )   //Copiamos la primera palabra de la frase
  8.       {
  9.       *(palabras[0] + i) = *(string+ i);
  10.       i++;
  11.       }
  12. palabras[i] = '\0';
  13. }
Si, por ejemplo, guardo desde el teclado "hola que tal" en string, en palabras[0] no sólo no se copia "hola", sino basura (strlen me dice que hay 24 caracteres en total). Si compruebo las vueltas que ha dado el bucle, efectivamente son 4 , el número de letras, y además añado el '\0' al final. Funciona mal reserve el espacio que reserve con malloc.

PD: con calloc en lugar de malloc sí funciona correctamente, pero quiero saber qué es lo que hago mal en esa función como está.

Gracias y saludos.


En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Problema con array de punteros
« Respuesta #1 en: 26 Marzo 2013, 20:25 pm »

Fíjate en esta sentencia:
Código
  1. palabras[i] = '\0';
¿A qué le estás asignando el carácter nulo, al array de caracteres o al array de punteros? :silbar: .


« Última modificación: 26 Marzo 2013, 20:28 pm por avesudra » En línea

Regístrate en
NathanD

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: Problema con array de punteros
« Respuesta #2 en: 26 Marzo 2013, 20:29 pm »

Fíjate en esta sentencia:
Código
  1. palabras[i] = '\0';
¿A qué le estás asignando el carácter nulo, al array de caracteres o al array de punteros? :silbar:



Menudo despiste... Pensaba que la aritmética de punteros ya la dominaba por completo  ;D

Muchas gracias.
En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Problema con array de punteros
« Respuesta #3 en: 26 Marzo 2013, 20:31 pm »



Menudo despiste... Pensaba que la aritmética de punteros ya la dominaba por completo  ;D

Muchas gracias.
Los errores más complicados de ver son los absurdos  :xD , usa el depurador cuando no veas rápido porque es.

¡Un saludo!
En línea

Regístrate en
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Problema con array de punteros
« Respuesta #4 en: 26 Marzo 2013, 21:13 pm »

Los errores más complicados de ver son los absurdos  :xD
+1

Puedo asegurar que el 80% de estos errores son por cosas como esa.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines