long long int赋值另一个long long int.结果都变成0,怎么解决?

还请看一眼,由于我是初中生,英语不大好,也懒得百度,所以很多变量是拼音
有什么需要补充请告知!

hp=MAXhp;//此处刚刚读档,赋值后都变为0,但是不大确定
void load(void)//读取游戏存档
{
    fp = fopen("chundang.txt", "rb");
    fscanf(fp, "%s\n", name);
    fread(&LV, sizeof(LV), 1, fp);
    fread(&MAXhp, sizeof(MAXhp), 1, fp);
    fread(&cheng, sizeof(cheng), 1, fp);
    fread(&huan, sizeof(huan), 1, fp);
    fread(&guai, sizeof(guai), 1, fp);
    fread(&x, sizeof(x), 1, fp);
    fread(&exp1, sizeof(exp1), 1, fp);
    fread(&zy, sizeof(zy), 1, fp);
    fread(&money, sizeof(money), 1, fp);
    fread(&libao, sizeof(libao), 1, fp);
    fread(&zb_name[4][40], sizeof(zb_name), 4, fp);
    fread(&pinzhi[4], sizeof(pinzhi), 4, fp);
    fread(&lv_[4], sizeof(lv_), 4, fp);
    fread(&color_[4], sizeof(color_), 4, fp);
    fread(&break_[4], sizeof(break_), 4, fp);
    fread(&hpup[4], sizeof(hpup), 4, fp);
    fread(&hurtup[4], sizeof(hurtup), 4, fp);
    fclose(fp);
}
void save(void)//保存游戏
{
    fp = fopen("chundang.txt", "rb+");
    fprintf(fp, "%s\n", name);
    fwrite(&LV, sizeof(LV), 1, fp);
    fwrite(&MAXhp, sizeof(MAXhp), 1, fp);
    fwrite(&cheng, sizeof(cheng), 1, fp);
    fwrite(&huan, sizeof(huan), 1, fp);
    fwrite(&guai, sizeof(guai), 1, fp);
    fwrite(&x, sizeof(x), 1, fp);
    fwrite(&exp1, sizeof(exp1), 1, fp);
    fwrite(&zy, sizeof(zy), 1, fp);
    fwrite(&money, sizeof(money), 1, fp);
    fwrite(&libao, sizeof(libao), 1, fp);
    fwrite(&zb_name[4][40], sizeof(zb_name), 4, fp);
    fwrite(&pinzhi[4], sizeof(pinzhi), 4, fp);
    fwrite(&lv_[4], sizeof(lv_), 4, fp);
    fwrite(&color_[4], sizeof(color_), 4, fp);
    fwrite(&break_[4], sizeof(break_), 4, fp);
    fwrite(&hpup[4], sizeof(hpup), 4, fp);
    fwrite(&hurtup[4], sizeof(hurtup), 4, fp);
    fclose(fp);
}

数组的读取和写入不对

void save(void)//保存游戏
{
    fp = fopen("chundang.txt", "rb+");
    fprintf(fp, "%s\n", name);
    fwrite(&LV, sizeof(LV), 1, fp);
    fwrite(&MAXhp, sizeof(MAXhp), 1, fp);
    fwrite(&cheng, sizeof(cheng), 1, fp);
    fwrite(&huan, sizeof(huan), 1, fp);
    fwrite(&guai, sizeof(guai), 1, fp);
    fwrite(&x, sizeof(x), 1, fp);
    fwrite(&exp1, sizeof(exp1), 1, fp);
    fwrite(&zy, sizeof(zy), 1, fp);
    fwrite(&money, sizeof(money), 1, fp);
    fwrite(&libao, sizeof(libao), 1, fp);
    fwrite(&zb_name, sizeof(zb_name), 1, fp);//fwrite(&zb_name[4][40], sizeof(zb_name), 4, fp);
//&zb_name[4][40]是zb_name的第5行,41列的元素,而此元素并不存在。这里直接写数组名就行了。
//sizeof(zb_name)返回的是整个数组的大小,所以数量写1就可以。
//下同
    fwrite(&pinzhi[4], sizeof(pinzhi), 4, fp);
    fwrite(&lv_[4], sizeof(lv_), 4, fp);
    fwrite(&color_[4], sizeof(color_), 4, fp);
    fwrite(&break_[4], sizeof(break_), 4, fp);
    fwrite(&hpup[4], sizeof(hpup), 4, fp);
    fwrite(&hurtup[4], sizeof(hurtup), 4, fp);
    fclose(fp);
}