ExpertiDict

C · Essencial · Português · Técnico

variável não inicializada

/va.ˈɾja.vew ˈnɐ̃w̃ i.ni.si.a.li.ˈza.dɐ/substantivo

Variável local declarada sem valor inicial, cujo conteúdo é indeterminado: lixo que estava na pilha. Globais e static começam zeradas; locais não.

Onde usar

Gera aquele bug que muda de comportamento conforme a otimização ou a máquina. O Valgrind e o aviso do -Wall com -O2 ajudam a achar leituras de valor indeterminado.

Em código

int g;  // global: começa em 0
int main(void) {
  int x;  // local: valor indeterminado
  int y = 0;
  return g + y;  // x não é lido
}

Exemplos

O bug só aparecia em release porque uma variável local ficou sem inicializar.

Inicialize na declaração: o lixo da pilha não é zero.

Cuidado

Supor que o lixo é zero porque nos testes deu zero; só variáveis globais e static têm inicialização garantida.

Sinônimos

lixo de memória

Antônimos

variável inicializada

Veja também

Todos os termos de C