Duvida com vetores em C

eu fiz esse programinha e se alguem puder e ajudar
o problema é o seguinte: só não consigo armazenar os valores cujas variaveis são numericas, o codigo está logo em baixo:


#include <tchar.h>
#include <stdio.h>
#include <locale.h>


int cadi=0;
int codigo ;
char nome[2][50];
char endereco[2][50];
char bairro[2][50];
char cidade[2][50];
char estado[2][50];
char cep[2][50];
int idade[2][10];
float altura[2][10];
float peso[2][10];



alteracao() {

   char x;
   int y;

   system("cls");
   printf("\n |------------------------- SETOR PESSOAL -------------------------------|");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n | ALTERAR CADASTRO                                                      |");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n");
   printf("\n");
   printf("\n QUANTIDADE DE CADASTRO: %d", cadi);
   printf("\n");

   printf("\n Digite o codigo da Pessoa: ");
   scanf("%d",&y);
   printf("\n");
   fflush(stdout);
   gets(nome[y]);
   fflush(stdout);

   printf("\n Nome: ");
   gets(nome[y]);
   fflush(stdout);


   printf("\n Endereco: ");
   gets(endereco[y] );
   fflush(stdout);

   printf("\n Bairro: ");
   gets(bairro[y] );
   fflush(stdout);

   printf("\n Cidade: ");
   gets(cidade[y] );
   fflush(stdout);

   printf("\n Estado: ");
   gets(estado[y] );
   fflush(stdout);

   printf("\n Cep: ");
   gets(cep[y] );
   fflush(stdout);

   printf("\n Idade: ");
   scanf("%d", idade[y] );
   fflush(stdout);

   printf("\n Altura: ");
   scanf("%f", altura[y] );
   fflush(stdout);

   printf("\n Peso: ");
   scanf("%f",peso[y] );
   fflush(stdout);

   system("cls");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n | ALTERAR OUTRO CADASTRO?                                                  |");
   printf("\n | S - SIM CADASTRAR NOVAMENTE                                           |");
   printf("\n | N - NAO VOTAR PARA O MENU PRINCIPAL                                   |");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n");
   printf("\n Digite a Opcao ");
   scanf("%c",&x);

   while(x != 'S' || x != 'N' || x != 's' || x != 'n'){
	 switch (x) {
	   case 'S': alteracao();
	   break;
	   case 'N': main();
	   break;
	   case 's': alteracao();
	   break;
	   case 'n': main();
	   break;

	 }
   }



}

cadastro() {

   char x;

   system("cls");

   printf("\n |------------------------- SETOR PESSOAL -------------------------------|");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n | CADASTRO                                                              |");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n");
   printf("\n QUANTIDADE DE CADASTRO: %d", cadi);
   printf("\n");

   cadi++;

   printf("\n Nome: ");
   gets(nome[cadi]);


   printf("\n Endereco: ");
   gets(endereco[cadi] );


   printf("\n Bairro: ");
   gets(bairro[cadi] );


   printf("\n Cidade: ");
   gets(cidade[cadi] );


   printf("\n Estado: ");
   gets(estado[cadi] );

   printf("\n Cep: ");
   gets(cep[cadi] );

   printf("\n Idade: ");
   scanf("%d", idade[cadi] );

   printf("\n Altura: ");
   scanf("%f",altura[cadi] );


   printf("\n Peso: ");
   scanf("%f",peso[cadi] );


   system("cls");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n | CADASTRAR NOVAMENTE?                                                  |");
   printf("\n | S - SIM CADASTRAR NOVAMENTE                                           |");
   printf("\n | N - NAO VOTAR PARA O MENU PRINCIPAL                                   |");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n");
   printf("\n Digite a Opcao ");
   scanf("%c",&x);

   while(x != 'S' || x != 'N' || x != 's' || x != 'n'){
	 switch (x) {
	   case 'S': cadastro();
	   break;
	   case 'N': main();
	   break;
	   case 's': cadastro();
	   break;
	   case 'n': main();
	   break;

	 }
   }


}

reltodos() {
  char x;
  int y;
  system("cls");
  printf("\n");

  for (y = 1; y <= cadi; y++){
   printf("\n Nome: %s ",nome[y]);
   printf("\n Endereco: %s ",endereco[y]);
   printf("\n Bairro: %s",bairro[y]);
   printf("\n Cidade: %s",cidade[y]);
   printf("\n Estado: %s",estado[y]);
   printf("\n Cep: %s",cep[y]);
   printf("\n Idade: %2d", idade[y]);
   printf("\n Altura: %.2f", altura[y]);
   printf("\n Peso: %.2f", peso[y]);
   printf("\n --------------------------------------");
  }
  printf("\n");
  printf("\n");
  system("PAUSE");
  consulta();
}

relfiltro() {

  char x;
  int y;
  system("cls");
  printf("\n");

   printf("\n Digite o codigo da Pessoa: ");
   scanf("%d",&y);
   printf("\n");
   fflush(stdout);

   printf("\n Nome: %s ",nome[y]);
   printf("\n Endereço: %s ",endereco[y]);
   printf("\n Bairro: %s",bairro[y]);
   printf("\n Cidade: %s",cidade[y]);
   printf("\n Estado: %s",estado[y]);
   printf("\n Cep: %s",cep[y]);
   printf("\n Idade: %2d",idade[y]);
   printf("\n Altura: %.2f",altura[y]);
   printf("\n Peso: %.2f",peso[y]);
  printf("\n");
  printf("\n");
  system("PAUSE");
  consulta();
}


consulta() {
   int y;
   int x = 0;
   system("cls");

   printf("\n |-----------------------------------------------------------------------|");
   printf("\n | CONSULTA DE CADASTRO PESSOAL                                          |");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n | 1-TODOS                                                               |");
   printf("\n | 2-FILTRAR CADASTRO                                                    |");
   printf("\n | 0-SAIR                                                                |");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n");
   printf("\n QUANTIDADE DE CADASTRO: %d", cadi);
   printf("\n");
   printf("\n Digite a Opcao ");
   scanf("%d",&x);

   while(x > -1){
	 switch (x) {
	   case 1: reltodos();
	   break;
	   case 2: relfiltro();
	   break;
	   case 0: main();
	   break;
	   default: main();
	 }
   }
}


menuprincipal() {

   int x = 0;
   system("cls");

   printf("\n %d", cadi);

   printf("\n |------------------------- SETOR PESSOAL -------------------------------|");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n | MENU PRINCIPAL                                                        |");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n | 1-CADASTRO                                                            |");
   printf("\n | 2-ALTERAR                                                             |");
   printf("\n | 3-CONSULTA                                                            |");
   printf("\n | 0-SAIR                                                                |");
   printf("\n |-----------------------------------------------------------------------|");
   printf("\n");
   printf("\n QUANTIDADE DE CADASTRO: %d", cadi);
   printf("\n");
   printf("\n Digite a Opcao ");
   scanf("%d",&x);

   while(x > -1){
	 switch (x) {
	   case 1: cadastro();
	   break;
	   case 2: alteracao();
	   break;
	   case 3: consulta();
	   break;
	   case 0: exit();

	   break;
	 }
   }
}

int main(int argc, char *argv[])
{
   menuprincipal();
   printf("\n");
   printf("\n");
   system("PAUSE");
   return 0;
}


Retire o [10] das variáveis numéricas.

Somente para caracteres você deve especificar o número máximo de bytes no interior da String. Variáveis numéricas tem tamanhos definidos pelo compilador, aquele [10] está criando é um array bidimensional delas.

Já tentei de todo jeito e nada…

se eu colocar dessa forma:


int cadi=0;
int codigo ;
char nome[2][50];
char endereco[2][50];
char bairro[2][50];
char cidade[2][50];
char estado[2][50];
char cep[2][50];
int idade[2];
float altura[2];
float peso[2];

dá um erro “Access Violation” exatamente na variavel numerica


  printf("\n Idade: ");
   scanf("%d", idade[cadi] );
   fflush(stdout);

tentei usar estrutura também não deu certo


typedef struct pessoal dados;

struct pessoal{

int codigo ;
char nome[50];
char endereco[50];
char bairro[50];
char cidade[50];
char estado[50];
char cep[50];
int idade[10];
float altura[10];
float peso[10];

};

valeu, deu certo aqui, foi só falta de atenção o problema é o tal de “&”

eu estava colocando sem o i comercial

   printf("\n Idade: ");
   scanf("%d", idade[cadi] );
   fflush(stdout);
   printf("\n Idade: ");
   scanf("%d", &idade[cadi] );
   fflush(stdout);