31/05/2013, 03:13
|
| | Fecha de Ingreso: junio-2010 Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 7 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, |