fwrite( arr1, sizeof(*arr1), sizeof(arr1)/sizeof(*arr1), outfile ); ^ ^ | | | | dereferencing arr1 produces an int As you can see, it was simpler and clearer to use the original form because fwrite was designed with arrays in mind.