C · Intermediário · Inglês · Técnico
array decay
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