C# · Avançado · Inglês · Técnico
stackalloc
Operador que aloca um bloco de memória na stack da thread atual, liberado ao fim do método. Com Span<T> não exige código unsafe e evita alocar no heap.
Onde usar
Aparece em código de desempenho para buffers pequenos e temporários, como formatar um número. Mantenha o tamanho pequeno e limitado, porque estourar a stack derruba o processo sem exceção capturável.
Em código
Span<int> buf = stackalloc int[4];
buf[0] = 10;
buf[1] = 20;
Console.WriteLine(buf[0] + buf[1]); // 30Exemplos
We use stackalloc for this small temporary buffer.
Usamos stackalloc para esse buffer temporário pequeno.
Don't stackalloc a size that comes from user input.
Não faça stackalloc de um tamanho vindo da entrada do usuário.
Cuidado
Não aloque tamanhos vindos de entrada externa nem use dentro de laços: a memória só é liberada no fim do método.
Origem
Junção de stack e allocate, 'alocar na pilha'.