Too little information, but I will presume that the names are arrays of C strings and the others are arrays of int. Since a C string is an array of char, then an array of C strings is a 2D array of char. Since fscanf wants a pointer to the variables, the & (address-of) is fine for the last three. For the first two, fName [i] and lName[i] ARE pointers, so drop the &. As I say, though, that's based on a guess.

Any time you use an input function, and particularly one that may be required to convert input to a number, check the function for success. fscanf doesn't promise to work. What if you asked it to convert zx5 to an integer? It does promise to tell you if it failed, if you but ask it. Check your documentation for how it does that. Once you break it, it stays broken until you repair it.