Test Foro de elhacker.net SMF 2.1

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".


char *fgets(char *s, int n, FILE *iop)
{
register int c;
register char *cs;

cs=s;
while (--n>0&&(c=getc(iop))!=EOF)
    if ((*cs++=c)=='\n)
        break;
*cs='\0';
return (c==EOF&&cs==s)?NULL : s;
}


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'.