Título: Duda sobre código Publicado por: Xenomorfo77 en 6 Mayo 2012, 06:09 am Tengo un problema en este código, el puntero es una matriz a la que le doy a cada elemento el valor 'f', el problema esta en cuando lo imprimo al archivo. El total de elementos no se corresponde con el tamaño elegido. Por ejemplo si pongo 100, me imprime 100 'f' mas basura que no se porque sale.¿Alguien sabe porqué?
Código
Título: Re: Duda sobre código Publicado por: durasno en 6 Mayo 2012, 17:51 pm Hola! el problema es que estas haciendo un sizeof(int) en el malloc, de esta forma estas reservando 100 int y no 100 char, es por eso que imprime basura demas. Deberia ser sizeof(char) para tener un arreglo de 100 caracteres
Saludos Título: Re: Duda sobre código Publicado por: linkingcrk en 6 Mayo 2012, 17:57 pm Citar Insertar Cita Hola! el problema es que estas haciendo un sizeof(int) en el malloc, de esta forma estas reservando 100 int y no 100 char, es por eso que imprime basura demas. Deberia ser sizeof(char) para tener un arreglo de 100 caracteres Saludos te me adelantastes :¬¬ justo le estaba respondiendo cuando tu le respondistes :laugh: Xenomorfo. los char ocupan 1 Byte y los Int 4 te recomiendo repasar estas cosas... Título: Re: Duda sobre código Publicado por: Xenomorfo77 en 6 Mayo 2012, 20:06 pm Hola, gracias a los dos pero lo cierto es que ya lo había probado, aunque le ponga sizeof(char) me sigue fallando. Pruebenlo en sus maquinas por ejemplo con 100, cuando llega a la línea que imprime el total de elementos de la matriz me da 103 en vez de 100 por lo cual me impre 100 'f' y 3 caracteres basura.
Título: Re: Duda sobre código Publicado por: durasno en 6 Mayo 2012, 21:31 pm El problema es q strlen espera una cadena. Toda cadena termina con el caracter '\0', es por esto q strlen devolvia mal...
Agrega: Código despues del for(ahi tendria q andar bien y usa char en el sizeof). Ademas la condicion del for debe ser i<nElementos-1; ya que el '\0' va a ocupar el espacio 99 o podrias reservar 101 char en ves de 100 Saludos Título: Re: Duda sobre código Publicado por: Xenomorfo77 en 6 Mayo 2012, 21:41 pm El problema es q strlen espera una cadena. Toda cadena termina con el caracter '\0', es por esto q strlen devolvia mal... Agrega: Código despues del for(ahi tendria q andar bien y usa char en el sizeof). Ademas la condicion del for debe ser i<nElementos-1; ya que el '\0' va a ocupar el espacio 99 o podrias reservar 101 char en ves de 100 Saludos Muchas gracias durasno, creia que el '\0' se agregaba solo al llegar al ultimo elemento. Solucionado gracias de nuevo. Modifico el code y lo dejo bien por si a alguien le sirve. Un saludo. Título: Re: Duda sobre código Publicado por: durasno en 6 Mayo 2012, 21:46 pm De nada :)... cuando usas funciones q manejan cadenas(ej: scanf, fgets...),el caracter '\0' si se agrega solo, pero cuando usas bucles para crear algo como vos hicist, lo tenes q agregar
Saludos Título: Re: Duda sobre código Publicado por: Xenomorfo77 en 6 Mayo 2012, 21:49 pm De nada :)... cuando usas funciones q manejan cadenas(ej: scanf, fgets...),el caracter '\0' si se agrega solo, pero cuando usas bucles para crear algo como vos hicist, lo tenes q agregar Saludos Entendido, gracias. |