あと、もう一つ質問がありまして、
scanf("%s", test->Name);
の部分で、文字列を入力した際に、エンターを押した後、\0は代入されますよね。
あと\0の名前は文字列終端子であってますか?
#include<stdio.h>
#include<stdlib.h>
int main(){
typedef struct{
char Name[100];
int Hp;
int Mp;
} TEST;
TEST* test;
test = (TEST*)malloc(sizeof(TEST));
printf("キャラの名前を入力してください:");
scanf("%s", test->Name);
printf("キャラのHPを入力してください:");
scanf("%d", &test->Hp);
printf("キャラのMPを入力してください:");
scanf("%d", &test->Mp);
FILE *fp = fopen("セーブ.txt", "wb");
fwrite(test, sizeof(TEST), 1, fp);
free(test);
rewind(stdin);
getchar();
return 0;
}