I was referring to the "..." in the fread call as well.
However, in your struct you declared cName as an array of 32 characters, then you likely attempted to set cName to '\0'. Valid indices are 0-31. 32 is right out. It worked in your malloc version because you malloced 33 characters.