Jajaja.
Lo más urgente ahora es resolver el problema que tengo al reservar la memoria para volcar el archivo. Lo otro cuando funcione esto ya veremos si hay que llamar a los artificieros para que no explote el pc jijiji.
He hecho esta modificacion porque he leido que si falla realloc se produciria una fuga de memoria como yo lo estaba haciendo y que habia que usar un puntero auxiliar asi que asi lo he dejado:
Código C:
Ver originalvoid LiberarMemoria(char ***buffer,int nlines)
{
int index;
if(buffer != NULL && *buffer != NULL){
for(index=0;index < nlines;index++)
}
}
//---------------------------------------------------------------------------
int CargarFicheroEnMemoria(FILE *origen, char *path,char ***pbuffer)
{
int nlines=0,largo;
char aux[SIZEMAX];
char **paux;
if(origen != NULL){
*pbuffer=NULL;
fgets(aux
,SIZEMAX
,origen
); nlines++;
paux
=(char**)realloc(*pbuffer
,nlines
*sizeof(char**)); if(paux != NULL){
*pbuffer=paux;
*pbuffer
[nlines
-1]=(char*)malloc(sizeof(char*)*largo
); strcpy(*pbuffer
[nlines
-1],aux
); }else{
printf("No hay suficiente memoria disponible para volcar el archivo.\n"); LiberarMemoria(pbuffer,nlines-1);
}
}
}
return nlines;
}
Sigue teniendo el mismo fallo y es porque no hago bien el trabajo de punteros y no se que hago mal al respecto. ¿podeis ayudarme?