Tenía una duda sobre la creación de Un array de punteros. Os explico la idea: Tengo que hacer un programa que me devuelva las lineas de entrada en orden inverso, es decir, la ultima linea como la primera, y la primera como la última. Para ello he recurrido a crear lo que viene siendo un puntero doble. Me he tirado toda la tarde intentando buscar una solucion pero no doy con ella, No se que estoy haciendo mal en el código y me sale un Segmentation Fault.
Aqui os muestro el código:
Citar
void delreves(FILE* archivo){
char string[100];
char *pointer;
char **array_pointers;
int i=0;
char **aux;
array_pointers=(char**)malloc(sizeof(char*));
if(array_pointers==NULL){
exit(-1);
}
int size=1;
while(!feof(archivo)){
fgets(string,2048,archivo);
aux=(char **)realloc(array_pointers,(sizeof(char)*size));
if(aux!=NULL){
array_pointers=aux;
}
pointer=pointer+i;
array_pointers=array_pointers+i;
pointer=strdup(string);
array_pointers=&pointer;
size++;
i++;
}
}
char string[100];
char *pointer;
char **array_pointers;
int i=0;
char **aux;
array_pointers=(char**)malloc(sizeof(char*));
if(array_pointers==NULL){
exit(-1);
}
int size=1;
while(!feof(archivo)){
fgets(string,2048,archivo);
aux=(char **)realloc(array_pointers,(sizeof(char)*size));
if(aux!=NULL){
array_pointers=aux;
}
pointer=pointer+i;
array_pointers=array_pointers+i;
pointer=strdup(string);
array_pointers=&pointer;
size++;
i++;
}
}
El problema me surge principalmente al usar el movimiento de punteros, que no se porque no me lo ejecuta bien.
Os agradecería que me ayudarais a entender como usar un puntero doble para que vaya apuntando a cada uno de los punteros con malloc y realloc.
Gracias por vuestro tiempo.