Ir para conteúdo
Fórum Script Brasil
  • 0

Stackalloc


Denis Bittencourt Muniz

Pergunta

Fala galera!

No C#, existe uma palavra chave chamada 'stackalloc' que que aloca um bloco de memória.

A dúvida:

int* memory = stackalloc int[30];

Na expressão acima, o que siginifica aquele '30'?

Falows!

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Como assim? Desculpe, mas não entendi.

Falows!

P.S: O que é 'stack'? E como assim quantidade? Não posso alocar quantos quiser?

Link para o comentário
Compartilhar em outros sites

  • 0
Como assim? Desculpe, mas não entendi.

Falows!

P.S: O que é 'stack'? E como assim quantidade? Não posso alocar quantos quiser?

Quando um programa está em execução existem dois tipos de memória onde os dados podem ser armazenados, a saber: stack e heap. A stack é onde variáveis locais (de funções e métodos) e parâmetros de funções são armazenados e todo o resto é armazenado na heap. Quando se cria um objeto, ele em si é armazenado na heap e sua referência é armazenada na stack. Com a utilização de stackalloc você estará armazenando os valores diretamente na stack (e não na heap). E o acesso à stack é um pouco mais rápido do que à heap.

Certo? wink.gif

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

OK! valeu! Entendi o conceito de 'heap' e 'stack'. Mas o que seria o número? Eu posso fazer isso, por exemplo: int* x = &memory[31]. Ok, mas o índice não é 30?

Falows!

Link para o comentário
Compartilhar em outros sites

  • 0
OK! valeu! Entendi o conceito de 'heap' e 'stack'. Mas o que seria o número? Eu posso fazer isso, por exemplo: int* x = &memory[31]. Ok, mas o índice não é 30?

Falows!

Não, ali não é o índice. É a quantidade de inteiros que você quer alocar na stack. E ali entra um ponteiro justamente porque isso é um vetor (array).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...