Programar em C/Gerenciamento de memória: diferenças entre revisões

[edição não verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Frigotoni (discussão | contribs)
m Foram revertidas as edições de 187.118.85.149 (disc) para a última versão por 2.14.130.47
Linha 1:
 
== Alocação dinâmica ==
 
woow 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.
Linha 88:
Valor de retorno :
Se a função terminar normalmente ela retorna o endereço do novo bloco.Pode acontecer que o endereço mude com relação ao endereço usado em argumento, nesse caso o conteudo do bloco é transferido para o novo bloco e a região antiga e liberada automaticamente.<br>
wSeSe faltar lugar na memória ou size for igual a 0 realloc retorna NULL .<br>
 
Ex: