Mapa mental
Alocação dinâmica
Conteúdo do mapa
Alocação dinâmica
Reconhecer as funções utilizadas na alocação dinâmica.
Descobrir o tamanho de um tipo de dado.
Realizar a alocação dinâmica de um vetor.
Realizar a alocação dinâmica de uma matriz.
Liberar a memória alocada.
Definição: Sempre que escrevemos um programa, é preciso reservar espaço para os dados que serão processados. Para isso usamos as variáveis.
- Uma variável é uma posição de memória previamente reservada e que pode ser usada para armazenar algum dado.
- Toda variável deve ser declarada antes de ser usada.
- Imagine o seguinte problema: precisamos construir um programa que processe os valores dos salários dos funcionários de uma pequena empresa.
- Um ponteiro é uma variável que guarda o endereço de um dado na memória.
- O nome do array é apenas um ponteiro que aponta para o primeiro elemento do array
- A alocação dinâmica consiste em requisitar um espaço de memória ao computador, em tempo de execução, o qual, usando um ponteiro, devolve para o programa o endereço do início desse espaço alocado.
- O nome do array é apenas um ponteiro que aponta para o primeiro elemento do array
- Toda variável deve ser declarada antes de ser usada.
- Uma variável é uma posição de memória previamente reservada e que pode ser usada para armazenar algum dado.
Alocar memória para um elemento do tipo int é diferente de alocar memória para um elemento do tipo float
- A função sizeof() é usada para saber o número de bytes necessários para alocar um único elemento de determinado tipo de dado.
- Note que a função malloc() retorna um ponteiro genérico (void*). Esse ponteiro pode ser atribuído a qualquer tipo de ponteiro via type cast.
- A função sizeof() é usada para saber o número de bytes necessários para alocar um único elemento de determinado tipo de dado.
calloc()
- A função malloc() recebe dois parâmetros de entrada: • num: o número de elementos no array a ser alocado. • size: o tamanho de cada elemento do array.
- E retorna: • NULL: no caso de erro. • O ponteiro para a primeira posição do array alocado.
- A função malloc() recebe dois parâmetros de entrada: • num: o número de elementos no array a ser alocado. • size: o tamanho de cada elemento do array.
realloc()
- A função realloc() serve para alocar memória ou realocar blocos de memória previamente alocados pelas funções malloc(), calloc() ou realloc().
- Basicamente, a função realloc() modifica o tamanho da memória previamente alocada e apontada pelo ponteiro ptr para um novo valor especificado por num, sendo num o tamanho em bytes do bloco de memória solicitado (igual à função malloc()).
- A função realloc() retorna um ponteiro (void *) para o novo bloco alocado. Isso é necessário porque a função realloc() pode precisar mover o bloco antigo para aumentar seu tamanho. Se isso ocorrer, o conteúdo do bloco antigo é copiado para o novo bloco e nenhuma informação é perdida.
- Isso ocorre porque a função realloc() se comporta como a função malloc(). Ela não se preocupa em inicializar o espaço alocado.
- Se não houver memória suficiente para a realocação, um ponteiro nulo é devolvido e o bloco original é deixado inalterado.
- Isso ocorre porque a função realloc() se comporta como a função malloc(). Ela não se preocupa em inicializar o espaço alocado.
- A função realloc() retorna um ponteiro (void *) para o novo bloco alocado. Isso é necessário porque a função realloc() pode precisar mover o bloco antigo para aumentar seu tamanho. Se isso ocorrer, o conteúdo do bloco antigo é copiado para o novo bloco e nenhuma informação é perdida.
- Basicamente, a função realloc() modifica o tamanho da memória previamente alocada e apontada pelo ponteiro ptr para um novo valor especificado por num, sendo num o tamanho em bytes do bloco de memória solicitado (igual à função malloc()).
- A função realloc() serve para alocar memória ou realocar blocos de memória previamente alocados pelas funções malloc(), calloc() ou realloc().
Estrutura de dados
Alocação dinâmica
28/08/2022
Capitulo 11
Alocação de arrays multidimensionais
- Solução 1: Usando array unidimensional
- Solução 3: Ponteiro para ponteiro para array
- Solução 2: Usando ponteiro para ponteiro
- Solução 1: Usando array unidimensional
Informações
- Descrição
- Mapa Mental sobre Alocação dinâmica, criado por Ana Maria em 28-08-2022.
- Criado por
- Ana Maria
- Visualizações
- 0
- Avaliação
Mais sobre Ponteiros e alocação dinâmica de memória