Vetor Linguagem C - Vetor Em Linguagem C - RETOEDU
Vetor Em Linguagem C - RETOEDU

Como usar vetores em C: um guia prático

Vetores em C são apenas arrays unidimensionais alocados na memória. Vou explicar como funcionam na prática, não só a teoria.

Vetor linguagem C: declaração e acesso básico

Para declarar um vetor em C, você usa a sintaxe tipo nome[tamanho]. Por exemplo, para criar um vetor de 10 inteiros:

int numeros[10];

Isso reserva espaço para 10 posições, indexadas de 0 a 9. Acessar fora desses limites é um erro comum que trava programas ou causa comportamento imprevisível. C não faz verificação automática de limites — isso é responsabilidade do programador. Para preencher o vetor, você pode usar um loop for:

for(int i = 0; i 10; i++) {
    numeros[i] = i * 2;
}

Aqui, cada posição recebe o dobro do índice. Simples, direto.

Inicialização e leitura de dados

Vetores podem ser inicializados na declaração:

int numeros[5] = {1, 2, 3, 4, 5};

Se você passar menos valores que o tamanho, os restantes ficam zero. Se passar mais, dá erro de compilação. Para ler dados do usuário, use o scanf com o operador & para cada posição:

👉 Clique no botão abaixo para saber mais sobre o assunto!

scanf("%d", &numeros[i]);

Cuidado: scanf não valida se o índice está dentro dos limites. Se o usuário digitar algo errado ou o loop tiver bug, você pode sobrescrever memória adjacente.

Passando vetores para funções

Quando passa um vetor para uma função, passa-se o endereço do primeiro elemento, não uma cópia do array inteiro. Isso significa que qualquer alteração na função afeta o vetor original.

void modificar(int vet[], int tamanho) {
    vet[0] = 100; // modifica o vetor original
}

Por isso, sempre passe o tamanho junto como parâmetro. C não armazena o tamanho do vetor no ponteiro.

Um problema real que eu encontrei

Certa vez estava trabalhando em um programa que processava imagens em tons de cinza (valores de 0 a 255). O vetor tinha 512 elementos, mas eu estava usando int para armazená-los. O problema era que a lógica de processamento exigia cálculos intermediários que podiam exceder 255, mas o array inteiro ficava em memória suficiente para os valores. Quando mudei para unsigned char, o programa ficou mais rápido e usou menos memória. Erros de tipo em vetores pequenos passam despercebidos até causar bugs estranhos.

Pegadinhas comuns com vetores em C

Um erro frequente é confundir a inicialização de vetores com a atribuição subsequente. Você pode inicializar na declaração, mas não pode fazer vet = {1,2,3} depois. Para atribuir valores depois da declaração, use loops ou a função memcpy. Outro problema é a diferença entre vetores estáticos e dinâmicos. Vetores estáticos são alocados na pilha e têm tamanho fixo no momento da compilação. Para tamanhos variáveis, use alocação dinâmica com malloc:

int *vetor = malloc(tamanho * sizeof(int));

Não esqueça de liberar a memória com free() quando terminar de usar, senão vaza memória.

Boas práticas para vetores em C

Sempre verifique índices antes de acessar. Use macros ou constantes para definir tamanhos e evite hardcodar números no código. Para vetores grandes, considere alocar na heap com malloc para evitar estouro da pilha. Vetores em C são poderosos mas exigem cuidado. Se você está começando, pratique com vetores pequenos antes de partir para estruturas mais complexas como matrizes ou vetores dinâmicos.