suloku escribió:A mi me daba con este codigo usando libfat:
char *towiisd;
towiisd = NULL;
sprintf(towiisd, "cosas");
fputs(towiisd, pFile);
Esta resumido, pero basicamente era eso, me hacia bien si usaba una sola vez sprintf i fputs, pero mas de una petaba no estoy muy seguro de porque...quiza por estar en un bucle, pero no se llegaba a escribir nada en el archivo.
Lo solucione usando fprintf en lugar de lo demas por si a alguien le interesa, aunque si alguien que realmente sepa programar me dice el fallo se lo agradezco xD
salu2
pd: obvimanete abria y cerraba el archivo xD
Pues el fallo es muy simple.
Primero, declaras un puntero, que no apunta a ningún sitio concreto.
Luego, le das la dirección NULL (0).
Y luego, intentas poner algún contenido en este puntero/cadena, el programa peta porque no tienes "derecho" a escribir en esta dirección de memoria.
Para solucionarlo, necesitas simplemente conseguir una zona de memoria, puedes hacer dos cosas:
- En vez de usar un puntero, usa un array:
char towiisd[500]; --> tienes 500 bytes de memoria
- Consigue un bloque de memoria con malloc() (esta es peor ya que luego deberias que usar free() para dejarlo libre, con arrays se libera automáticamente al terminar la función)
towiisd = malloc(500); --> tienes 500 bytes de memoria