<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hola, tengo un problema al que no encuentro solucion. Yo tengo creado un archivo de acceso aleatorio.<p>No vale la pena ahondar demasiado en lo que hace el programa en si.<br>Leo bien todos los datos, pero a la hora de almacenarlos, tengo un error.<br>Apenas iniciado el for, guardo en una variable char una palabra. Esta palabra le guardo en la posicion j=0 de una variable char*.<br>Cuando guardo la siguiente iteración, me la guarda tanto en la posicion 0 como en la j=1.<br>O sea, al final de las 9 iteraciones, me queda el vector char* zonas[9] con 9 datos idénticos.<br>Calculo que el error esta en como defini las variables, pero tengo poca experiencia y no alcanzo a verlo. Si alguien me puede dar una mano se lo agradeceria!<br>Les dejo el código aca abajo!<br>Saludos y gracias!</p><p><br></p><p><br></p>#ifndef _HISTORIAL_H_<br>#define
_HISTORIAL_H_<br>#include <stdio.h><br>#include <string.h><br>#include <stdlib.h><br><br>void historial(){<br> FILE *ptrdel;<br> char archivodelitos[] = "delitos.txt";<br>char cadena[20];<br> char fecha[20];<br> char hora[20];<br> char alarma[2];<br> char *alarmas[9] = {0};<br> char zona[2];<br> char *zonas[9] = {0};<br> char delito[20];<br><p>char *delitos[54] = {0};</p><p>int i = 0; int d = 0; int j = 0;<br></p> ptrdel = fopen(archivodelitos, "r");<br><br> fseek(ptrdel,0,SEEK_SET);<br> <br> fscanf (ptrdel, "%s", cadena) != EOF;<br> strcpy(fecha,cadena);<br> fscanf (ptrdel, "%s", cadena) != EOF;<br> strcpy(hora,cadena);<br> <br> for(j=0;j<9;j++,z++){<br> fscanf (ptrdel, "%s", cadena) != EOF;<br> strcpy(zona,cadena);<br> zonas[j] = zona;<br> fscanf (ptrdel, "%s", cadena) != EOF;<br> strcpy(alarma,cadena);<br> alarmas[j] = alarma;<br>
while(strcmp(cadena,",")!=0){<br> if (strcmp(cadena,",")!=0){<br> fscanf (ptrdel, "%s", cadena) != EOF;<br> strcpy(delito,cadena);<br> delitos[d] = delito;<br> d++;<br> }<br> }<br>}<br> <br> printf("%s\n",fecha);<br> printf("%s\n",hora);<br><br> for(i=0;i<9;i++){<br> printf("%d %s %c\n", i, zonas[i], alarmas[i]);<br> }<br> fclose(ptrdel);<br>}<br><br>#endif<br></td></tr></table>