[C con Clase] Ayuda En Error Con Punteros

Steven Davidson steven en conclase.net
Mar Mar 13 04:18:17 CET 2007


Hola Diego,

El pasado 2007-03-13 01:25:00, D1e6o! escribió:

D> Ya está, uno de los errores estaba en malloc...
D> comandoactual->datos=(int*)malloc(sizeof(int)*2);
D> no debería ser
D> comandoactual->datos=(int*)malloc(sizeof(int)*2*comandoactual->largo);
D> Lo raro que el archivo prueba no se creaba... eso me desconcertaba, pero era
D> porque no lo ceraba aparentemente. Saludos! Y muchas gracias igual porque
D> seguramente me hubieran ayudado!

También veo algunos otros problemas. Haces lo siguiente:

#define TITULO prueba
...
MessageBox( hwnd, cadtemp, TITULO, MB_ICONINFORMATION | MB_OK );

Esto no tiene sentido, ya que estás pasando un valor de tipo 'FILE *' como el tercer argumento a 'MessageBox()', cuando en realidad espera un valor de tipo 'LPCTSTR()'.

En el bucle 'for', escribes:

fscanf( ini, "%d", &comandoactual->datos[cuenta+1] );
FEOFERROR( "cero" )
fprintf( prueba, "cuenta:%d %d\n", cuenta, comandoactual->datos[cuenta] );

Creo que debería ser:
fprintf( prueba, "cuenta:%d %d\n", cuenta, comandoactual->datos[cuenta+1] );

De lo contrario, estarías escribiendo los datos impares por duplicado.


Por último, efectivamente debes cerrar el fichero, para que los datos y el fichero en sí permanezcan correctamente.


Espero que todo esto te sea de ayuda.

Steven


Más información sobre la lista de distribución Cconclase