You should not be having the array size predefined but should be using the pointer instead. At least for char *hold[250000]; because you never know the size of the file you are parsing.