Hola..! bueno, estoy teniendo un problema y no entiendo que es lo que está sucediendo ya que el programa se me cierra sin ningún tipo de error. me podrían ayudar?..<br><br>Acá va una parte del código:<br><br>typedef struct {
<br> int largo;<br> char *nombre;<br> int *datos;<br>} comando;<br>...<br>#define TITULO prueba<br>...<br>comando *comandoactual;<br><br>...<br>...<br> ini=fopen("c:\\config.ini","r"); //abre el arch de config para la lectura
<br> prueba=fopen("c:\\prueba.ini","w");<br> if (ini == NULL || prueba==NULL)<br> {<br> MessageBox(hwnd, "Error al abrir el archivo",<br> TITULO, MB_ICONINFORMATION | MB_OK);
<br> return false;<br> }<br>...<br>...<br><br>comandoactual=(comando*) malloc(sizeof(comando));<br>...<br>comandoactual->nombre=(char *) malloc(strlen(cadtemp)+1);<br>...<br>strcpy(comandoactual->nombre,cadtemp); //cadtemp esta definida como array char cadtemp[101];
<br>...<br>MessageBox(hwnd, cadtemp,<br> TITULO, MB_ICONINFORMATION | MB_OK);<br>MessageBox(hwnd, comandoactual->nombre,<br> TITULO, MB_ICONINFORMATION | MB_OK);<br> //hasta acá bien ya que los 2 msgbox son iguales...
<br><br>comandoactual->largo=temp; //hasta acá está bien<br><br>comandoactual->datos=(int*)malloc(sizeof(int)*2); //puede que esté aca? pero después de esto el msgbox se ejecuta intento usar como un array<br><br>MessageBox(hwnd, "Llego hasta el malloc",TITULO, MB_ICONINFORMATION | MB_OK);
<br><br> for(cuenta=0;cuenta<temp*2;cuenta+=2)<br> {<br> fscanf(ini,"%d",&comandoactual->datos[cuenta]);<br> fprintf(prueba, "cuenta:%d %d\n", cuenta, comandoactual->datos[cuenta]);
<br> FEOFERROR("uno") //nada una macro para ver si hay un end of file pero no lo hay porque veo el archivo de entrada<br> fscanf(ini,"%d",&comandoactual->datos[cuenta+1]);
<br> FEOFERROR("cero")<br> fprintf(prueba, "cuenta:%d %d\n", cuenta, comandoactual->datos[cuenta]);<br> }<br> MessageBox(hwnd, "Después del for",TITULO, MB_ICONINFORMATION | MB_OK); //hasta acá no llega
<br>fclose (ini)<br><br>//a partir de aca es solo una verif a la que ni llega por tildarse antes<br><br>fprintf(prueba,"Nombre: %s, %d\n", comandoactual->nombre, comandoactual->largo);<br>for(cuenta=0;cuenta<comandoactual->largo*2;cuenta+=2)
<br>fprintf(prueba,"%d\n%d\n",comandoactual->datos[cuenta],comandoactual->datos[cuenta+1]);<br>fprintf(prueba,"fin");<br>fclose(prueba);<br><br>prueba y ini ya están abiertos.. eso está verificado, en
prueba.ini no obtengo nada, siendo que por tildarse antes debería tener aunque sea "probando..." <br><br><br><br>Alguien podrá ayudarme? Posiblemente el error esté en la utilización del puntero como arrays... pero esto es así? No se qué mas hacer para depurar... me podrían ayudar? y eso de que en prueba no hay nada me deja desconcertado... ya que no da error de inic. y se tilda después de esto pasando otras instrucciones...
<br><br>muchas gracias! Saludos!<br>