Até este momento da disciplina, trabalhamos principalmente com variáveis e vetores. Essas estruturas são extremamente úteis, mas possuem uma característica importante: cada variável ou posição de um vetor armazena apenas um tipo de dado.
Por exemplo:
int idade;
double salario;
char nome[100];
Da mesma forma, um vetor é composto por elementos de um único tipo:
int notas[30];
double temperaturas[365];
char palavra[50];
Esse modelo funciona muito bem quando precisamos armazenar informações homogêneas, ou seja, dados que possuem o mesmo tipo.
Entretanto, muitos problemas reais exigem o armazenamento de informações compostas por diferentes tipos de dados.
Imagine que precisamos desenvolver um sistema para armazenar informações de alunos. Cada aluno possui:
Uma abordagem simples seria utilizar vários vetores independentes:
char nomes[100][100];
int matriculas[100];
int idades[100];
float medias[100];
Nesse caso, todas as informações de um mesmo aluno precisam estar na mesma posição dos vetores:
| Índice | Nome | Matrícula | Idade | Média |
|---|---|---|---|---|
| 0 | Ana | 2025001 | 18 | 8.5 |
| 1 | Carlos | 2025002 | 19 | 7.8 |
Embora funcione, essa solução apresenta alguns problemas: