久しぶりに、誰かのバグで悩みました。

原因は

ファイルからの文字列の読み込み。

char* buffer = (char*)malloc( filesize );
FILE* fp = fopen( filename , "r" );
memset( buffer , 0 , filesize );
fread( buffer , filesize , 1 , fp );
fclose(fp);
printf( "%s" , buffer );
free(buff);

こんなかんじで、ちょうどのサイズで読み込んで、文字列として扱うと、
大体バグになります。
終端文字を考慮し、filesize に sizeof(char) 若しくは sizeof(unichar)とかを
加えて、ヒープを取らないといけません。
終端文字が無い場合、メモリの先を見て、終端(/0)が出るまでを文字列にしてしまいます。

当たり前ですが、みょうちくりんな言語だけを扱っていると、
いざネイティブ書く時、こういうミスが出ます。
ちゃんと基本が身に付いていると、デバッグできますから、
良いと言えば、良いのです。

判んない人は、
コードを書く手を今すぐ止めて、異動願いを書いてみては?