Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fafafa01 en 5 Enero 2017, 01:56 am



Título: Funcionamiento fgets
Publicado por: fafafa01 en 5 Enero 2017, 01:56 am
Buenas estaba viendo una posible implementacion de la función fgets, que esta en el libro "el lenguaje de programacion C".

Código
  1. char *fgets(char *s, int n, FILE *iop)
  2. {
  3. register int c;
  4. register char *cs;
  5.  
  6. cs=s;
  7. while (--n>0&&(c=getc(iop))!=EOF)
  8.    if ((*cs++=c)=='\n)
  9.        break;
  10. *cs='\0';
  11. return (c==EOF&&cs==s)?NULL : s;
  12. }
  13.  

mi duda es, para que fgets funcione "s" debe ser un arreglo o tener asignado una memoria con malloc o calloc y n no puede ser mayor a la cantidad de celdas reservadas.


Título: Re: Funcionamiento fgets
Publicado por: ivancea96 en 5 Enero 2017, 18:54 pm
Exactamente. fgets va a presuponer que 's' apunta a una dirección válida con al menos un tamaño de 'n'.