Prueba y compara el rendimiento de tu PC con nuestro banco de pruebas.

Ayuda (mas o menos urgente) con C



  • Necesito ayuda con un programa en ANSI C (ojo, que no C++) que se me está atragantando. En lineas generales, el programa lee un fichero de texto con un formato actividad-espacio-fechaentrada-fechasalida-mascaradedias-mascaradehoras:

    Cerrado Sala1 01/01/1007 31/12/2008 LMXJVSD 00-07_21-24
    

    y posteriormente rellena un array

    char *semana[24][31];
    

    siendo 24 las franjas horarias y 31 los dias (un calendario dentro de un array), y almacenando la actividad en cada celda.

    El caso es que trata los datos correctamente ya que usando el debugger puedo comprobar que están rellenas las celdas que deben. El problema viene después, que utilizo este array para tratarlo y convertirlo en tablas HTML por semanas, es entonces cuando aparecen zonas vacías en el array y otras que están guardadas correctamente.

    Supongo en mi escaso conocimiento de C (ya que los punteros me traen de cabeza) que el problema es que no reservo el espacio para los datos del array y al pasarlos por la función del html se usa memoria que antes se usaba en el array del mes y por eso me salen espacios en blanco. Si intento inicializar el array con una actividad "Vacio" al principio haciendo un recorrido de while's el sistema me dice que "un mojon pa tri" y solo me asigna la fila 0 del array (semana[0][0]…semana[0][30]).

    Después de este chorizo viene la pregunta: ¿me equivoco con lo de que el problema es la reserva de memoria? Y otra mas (solo una para no abusar): ¿como ostias reservo el puñetero espacio en memoria para el array para no tener estos "blanqueos"?

    Si el que me ayuda es de Madrid prometo unas cañas de recompensa ;D 🍺



  • Bueno, he conseguido implementar un array bidimensional reservando espacio para el, pero a la hora de introducirle los datos me lo trata como si fuera un array de enteros :vayatela:

    en resumen, si defino el array como "char *array[24][31]" me funciona pero se me borran registros, si lo defino como "**array" y hago el allocate el compilador dice que el array es de tipo entero, y si defino como "array[24][31]" me pasa exactamente lo mismo, el compilador dice que el array es de enteros :vayatela:

    Sigo buscando ayuda…



  • A ver, es que sin el programa hay que tener mucha imaginacion para saber que estas haciendo :risitas: Piensa que puede que sea un fallo tonto (nos pasa a todos :p) donde no toca y todo se vaya al traste. No puedes pastear aunque sea parte del codigo? O si no hablamos via messenger, aunque hasta esta noche no creo que tenga mucho tiempo…

    P.D.: Has de pensar que los punteros son ints, aunque sean punteros a char, el puntero sigue siendo un integer (ocupa el espacio de un int, por eso que quizas te de fallos, aunque sigo sin ver por que :S).



  • hombre, pastear el codigo no es que sea dificil, lo malo es que en total son unas 400 lineas de codigo y el chorizo de post iba a ser bonito 😄

    Te paso el msn por privado y hablamos esta noche si eso, aún me queda hasta el viernes para solucionarlo o bajar a los infiernos de las prácticas no terminadas :risitas:


Accede para responder