Funcionamiento fgets

Iniciado por fafafa01, 5 Enero 2017, 01:56 AM

0 Miembros y 1 Visitante están viendo este tema.

fafafa01

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.

ivancea96

Exactamente. fgets va a presuponer que 's' apunta a una dirección válida con al menos un tamaño de 'n'.