Okay, I tested it and it works. I'll post the whole code in a short while. Now I have to go back through the whole damn thing and readjust it. See the whole problem centered around feof reading the end of file. This solves the problem because it tells you how many records are in the file. That way you can design your loop to read the correct number of records and avoid reading end of file. So in about 45 minutes I'll post my linked list solution, but look at this, look up ftell and let me know if you get it.
Code://seek to the end of the file fseek(fin,sizeof(List),SEEK_END); //size represents number of records in file long size = ( ftell(fin) / sizeof(List) ) - 1;