次のコードについて質問です。
hFile = CreateFile(TEXT("file.txt"),
strFile = (LPSTR)malloc(GetFileSize(hFile, NULL));
ReadFile(fh, strFile, GetFileSize(hFile, NULL), &wReadSize, NULL);
CloseHandle(fh);
filelist[wReadSize] = '\0';

1.このコードは安全(確保されたメモリ以外の場所に書き込みを行わない)ですか?
2.filelist[wReadSize] = '\0' が必要なのはなぜですか?