Programar em C/Gerenciamento de memória: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
m nav |
Sem resumo de edição |
||
Linha 2:
== Alocação dinâmica ==
Todos os dados de um programa são armazenados na memória do computador; é muito comum necessitar reservar um certo espaço na memória para poder guardar dados mais tarde. Por exemplo, poderíamos reservar um espaço de 1000 bytes para guardar uma string que o usuário viesse a digitar, declarando um vetor de 1000 caracteres. E se quiséssemos reservar um espaço que só é conhecido no tempo de execução do programa? E se o espaço fosse muito grande, de modo que declarar vetores de tal tamanho seria inconveniente (pois, entre outras coisas, aumenta sem necessidade o tamanho do executável)?
Para solucionar esse problema, existe a '''alocação dinâmica de memória''', que como o nome sugere, é uma maneira de alocar memória à medida que o programa vai sendo executado. As quatro funções relacionadas com a alocação dinâmica serão descritas a seguir.
=== <tt>malloc</tt> e <tt>free</tt> ===
Essas duas funções são as mais básicas para o gerenciamento de memória. '''<tt>malloc</tt>''' é responsável pela alocação de um pedaço de memória, e '''<tt>free</tt>''' é responsável por liberar esse pedaço de memória.
Para alocar um espaço na memória, precisamos fornecer à função <tt>malloc</tt> o número de bytes desejados. Para isso, precisaremos usar o operador <tt>sizeof</tt>, introduzido na seção anterior.
=== calloc ===
|