Thanks for the help!Code:int read_word(int fld_delim, int rec_delim, int eor_delim, char field[MAXSIZE], FILE *fp) { int p, i; p = i = 0; while ( (p=getc(fp))!= EOF ) { if( p == fld_delim) { field[i++] = '\0'; return FLD_DELIM; } if( p == rec_delim) { field[i++] = '\0'; return REC_DELIM; } if ( p == eor_delim ) { field[i++] = '\0'; return EOR_DELIM; } if ( i <= MAXSIZE ){ printf("i=%d",i); field[i++] = p; // <-- I get array out of bound here printf("field= %s\n",field); } } field[i++] = '\0'; return FINISH; }