ExpertiDict

C · Avançado · Inglês · Técnico

alloca

/əˈloʊ.kə/substantivo

Função não padrão que reserva bytes na stack do chamador, liberados automaticamente quando a função retorna. É rápida, mas não avisa se a stack acabar.

Onde usar

Aparece em código antigo e em caminhos críticos que evitam malloc. Alocações grandes ou controladas pelo usuário levam a stack overflow.

Em código

#include <alloca.h>
char *tmp = alloca(256); // some no return
snprintf(tmp, 256, "id=%d", id);

Exemplos

Avoid alloca with sizes that come from user input.

Evite alloca com tamanhos que vêm da entrada do usuário.

alloca is not in the C standard.

alloca não está no padrão C.

Cuidado

Chamar alloca em laços, pois a memória só é liberada quando a função retorna, e a stack cresce a cada volta.

Antônimos

malloc

Veja também

Todos os termos de C