Hola tengo el siguiente codigo :::
#include <stdio.h>
#include <stdlib.h>
main(FILE *archivo, int a, int *p)
{
archivo = fopen("archivo.txt", "r");
if (!archivo) {
fprintf(stderr, "No se pudo\n");
clearerr(archivo);
exit(1);
}
fseek(archivo, 0, SEEK_SET);
a = ftell(archivo);
p = malloc(a);
char palabra[*p];
while(!feof(archivo)) {
if (fgets(palabra, *p, archivo)) {
printf("%s\n", palabra);
}
}
free(p);
return 0;
}
El cual funciona perfectamente, lee el archivo he imprime toda la data. Ahora... hay una pequena duda de mi parte si cambio en fseek y en vez de el puntero ubicarse en la linea 0 o antes del primer caracter. hago esto ::
fseek(archivo, 0, SEEK_END);
Y compilo y ejecuto.. sencillamente no me imprime nada en pantalla, se queda el bucle while ejecutando en background en memoria no ocurre asi si lo hago con 'Seek_SET' pero no deberia puesto que yo quiero asignarle el tamano del archivo a mi puntero *p.
Alguien podria mas o menos explicarme porque esta ocurriendo de tal manera...
