Boa tarde pessoal, estou com o seguinte problema nesse código    #include<stdlib.h>
#include<stdio.h>
struct reg_save{
       int cor_letra;
       int cor_sel;
       int cor_fundo;
       int menu;
       int qtd_equip; 
       int tipo_disp; 
       int aux5;
       char nome_equip[33][15];  
       int pos[33];
       int jogos[3][17][32];
};
struct reg_save save;
void SalvarDados()
{
    FILE *fpsave;     
    fpsave = fopen("save.dat","w");                   
    fwrite(&save,sizeof(save),1,fpsave); 
    fclose(fpsave);
 }
void CarregarDados()
{
    FILE *fpsave;
    fpsave = fopen("save.dat","rb");            
    fread(&save,sizeof(save),1,fpsave);                                                       
    fclose(fpsave);        
}
int main()
{
    save.menu=0;
    save.qtd_equip=0;
    save.tipo_disp=-1;
    save.cor_letra=15;
    save.cor_sel=4;
    save.cor_fundo=0;
    
    int x,tecla,num;
    
    for(x=1; x<=32; x++)
        save.pos[x]=1;
    
        printf("\nDigite um numero: ");
        scanf("%i",&num);
        for(x=1; x<=32; x++)
            save.pos[x]=x+num;
        SalvarDados();
        
        printf("\nNORMAL - ");
        for(x=1; x<=32; x++)
            printf("%i ",save.pos[x]);
        
        CarregarDados();    
        
        printf("\n\nDEPOIS DE CARREGAR O ARQUIVO - ");
        for(x=1; x<=32; x++)
            printf("%i ",save.pos[x]);
    printf("\n\n");
    system("pause");
}  Acontece que quando o arquivo é carregado os valores que são 10 ou + acabam mudando por exemplo o 10 muda para 2573 11 para 2816 12 para 3072 e assim continua.  Agradeceria muito se alguém pudesse me ajudar.