OK, I have a big problem, I don't know why this is happening to me. I'm trying to output a huge hex string to a FILE, but its not working for some reason it just gives me this in output.txt == ( MZ ) ??????

Code:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main(int argc, char *argv[])
{



unsigned char rawData[401408] = {
	0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
	0xFF, 0xFF, 0x00, 0x00, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0xF8, 0x00, 0x00, 0x00, 0x0E, 0x1F, 0xBA, 0x0E, 0x00, 0xB4, 0x09, 0xCD,
	0x21, 0xB8, 0x01, 0x4C, 0xCD, 0x21, 0x54, 0x68, 0x69, 0x73, 0x20, 0x70,
	0x72, 0x6F, 0x67, 0x72, 0x61, 0x6D, 0x20, 0x63, 0x61, 0x6E, 0x6E, 0x6F,
	0x74, 0x20, 0x62, 0x65, 0x20, 0x72, 0x75, 0x6E, 0x20, 0x69, 0x6E, 0x20,
	0x44, 0x4F, 0x53, 0x20, 0x6D, 0x6F, 0x64, 0x65, 0x2E, 0x0D, 0x0D, 0x0A,
	0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF9, 0xD2, 0x19, 0xBE,
	0xBD, 0xB3, 0x77, 0xED, 0xBD, 0xB3, 0x77, 0xED, 0xBD, 0xB3, 0x77, 0xED,
	0xAE, 0xBB, 0x1E, 0xED, 0xB0, 0xB3, 0x77, 0xED, 0xB8, 0xBF, 0x17, 0xED,
	0xBF, 0xB3, 0x77   /* it is to huge to put all the HEX  on this post,  its [401408] elements long   };    */



  	FILE* Binary_1 = fopen("output.txt","w");

  	fprintf(Binary_1,"%s",string1);

  	fclose(Binary_1);


return(0);
}

output.txt = ( MZ )










But when i try a smaller peace of string of Hex, it outputs correctly.

Code:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main(int argc, char *argv[])
{

char string1[5] = { 0x68, 0x65, 0x6C, 0x6C, 0x6F };

  	FILE* Binary_1 = fopen("output.txt","w");

  	fprintf(Binary_1,"%s",string1);

  	fclose(Binary_1);


return(0);
}

output.txt = ( hello )







I don't know what could be the problem, could someone help me out. Does string creation have a SIZE limit or something.