Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/05/2013, 03:13
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: fwrite escriba þþþþþþþþþ

Línea 21: El prototipo de sprintf_s es

int sprintf_s (char *buffer, size_t sizeOfBuffer, const char *format, [argumento, ...] );

Obviamente, te falta el parámetro con el tamaño del buffer. Aquí el compilador debería haber marcado un error o al menos un warning, a menos que en alguna parte haya una redefinición de sprintf_s a sprintf. Creo que las funciones XXX_s están destinadas a sustituír a sus correspondientes sin _s porque aportan más seguridad, pero no sé hasta dónde ha llegado esta sustitución en los compiladores (supongo que, de momento, puede que no haya portabilidad).

Linea 22: El primer parámetro de fwrite es un puntero al buffer que quieres escribir en el archivo. En este caso, dado que frase es un arreglo de caracteres, y en C el nombre de un arreglo es un puntero al primer elemento del arreglo, en realidad lo que estás pasando es un puntero a puntero, con lo que en el archivo estás guardando quién sabe qué cosas. Debes poner fwrite(frase, ....). Esta es la (casi) segura causa del error.

Saludos,