ExpertiDict

C · Intermediário · Inglês · Técnico

array decay

/əˈɹeɪ dɪˈkeɪ/substantivo

Conversão automática do nome de um array em ponteiro para seu primeiro elemento, na maioria das expressões. Por isso arrays passados a funções chegam como ponteiros, sem o tamanho.

Onde usar

Explica por que sizeof(v) dentro da função dá o tamanho de um ponteiro e por que é preciso passar o tamanho como parâmetro extra.

Em código

void imprime(int v[], int n) {
  // v é int *; sizeof v costuma dar 8
  for (int i = 0; i < n; i++)
    printf("%d ", v[i]);
}

Exemplos

Array decay is why the function loses the array length.

O array decay é o motivo de a função perder o tamanho do array.

Pass the length too, because of array decay.

Passe o tamanho também, por causa do array decay.

Cuidado

Esquecer das exceções: com sizeof e com & o array não decai, e continua sendo um array.

Sinônimos

decaimento de array

Veja também

Todos os termos de C