Alocação Dinâmica de Memória

Slides:



Advertisements
Apresentações semelhantes
Estrutura de Dados Pilha by Aquiles Burlamaqui. Definição Uma pilha é uma das várias estruturas de dados que admitem remoção de elementos e inserção de.
Advertisements

Marco Antonio Montebello Júnior
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
Listas encadeadas Prof. Rosana Palazon.
Programação II Estruturas de Dados
Alocação Dinâmida de Memória
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Alocação Dinâmica de Memória
LPG - I: Alocação Dinâmica de Memória - Ponteiros
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Listas com Ponteiros Listas encadeadas Listas circulares.
Universidade de Brasília
Curso de C/C++ Avançado
Ponteiros em Linguagem C
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Slides: Prof. João Fabro UTFPR - Curitiba
Fundamentos de Programação 1
Escola Secundária c/ 3º CEB da Batalha
2002/2003 Programação Orientada para Objectos 1 Aula 4 Memória, unidade básica de memória e conceito de endereço Ponteiros Relação de ponteiros com matrizes.
Listas Encadeadas.
Vetor de Ponteiros Exemplo de Alocação. Escrever Vetor de Vetores de floats int main() { int i, k, n; float **vetor; // vetor de vetores int *tamanho;
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
Professor Reverton de Paula Faculdade Anhanguera de Indaiatuba
Alocação Dinâmica de Memória Professor Mário Dantas
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
PROGRAMAÇÃO ESTRUTURADA II
Linguagem de Programação II Parte V
Linguagem de Programação II Parte IX
Definição de Tipos Estruturas e Ponteiros
Estruturas de Dados com Jogos
INTELIGÊNCIA ARTIFICIAL
Alocação Dinâmica de Memória
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Aula prática 6 Vetores e Matrizes
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Professor Mário Dantas
Prof. Ricardo Santos PONTEIROS
Estruturas de Dados Aula 5: Matrizes
Algoritmos e Estruturas de Dados I – Ponteiros
Estruturas de Dados Aula 11: TAD Pilha
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática Disciplina: Estrutura de Dados Professor: Cheli dos S. Mendes da Costa Listas.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Estruturas de Dados Aula 17: Estruturas Genéricas
1 Alocação Dinâmica Quando se declara arrays o tamanho deve ser fixo e definido primeiramente –Alocação estática Pode-se alocar dinamicamente o espaço.
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Vetores Bidimensionais – Debug - Ponteiros – Listas Encadeadas Simples
Estruturas de Dados Aula 15: Árvores
Algoritmos e Estruturas de Dados
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Prof. Alessandro Gonçalves
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Programação de Computadores I – Ponteiros Profa. Mercedes Gonzales Márquez.
Leandro Almeida  As declarações abaixo alocam memória para diversas variáveis.  A alocação é estática, pois acontece antes que o programa.
Ponteiros em C Prof. Kariston Pereira
Linguaguem de Programação II
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Ponteiros. Programação II Professora: Mai-Ly vanessa horário: ter 9h-11h; sex 11h-13h Aula 1.
Algoritmo e Estrutura de Dados I Aulas 15 – Linguagem C Alocação Dinâmica de Memória Márcia Marra
Linguagem de Programação
COMPILADORES 07 Prof. Marcos.
Programação em C Aula 9.
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Jean Carlo Mendes
FUNÇÕES Dilvan Moreira (baseado em material de Z. Liang)
Transcrição da apresentação:

Alocação Dinâmica de Memória Alocar memória dinamicamente significa obter mais espaço de memória durante a execução do programa, alocando novas variáveis e liberando espaço quando necessário.

malloc(<número de bytes>); O comando malloc A função  malloc  (abreviatura de memory allocation) da biblioteca padrão aloca um bloco de bytes consecutivos na memória do computador e devolve o endereço desse bloco.  Sintaxe: malloc(<número de bytes>); Exemplo: malloc (1);

O comando malloc A função malloc devolve um ponteiro "genérico" — ou seja, do tipo  void *  — para um bloco de bytes consecutivos . Se desejarmos realizar a alocação para um tipo específico, o retorno da função será um “ponteiro- para-tipo”. Neste caso, utilizaremos a função sizeof aninhada. Por exemplo: desejamos alocar um espaço de memória para um tipo inteiro: int *ptr; ptr = (int *) malloc (sizeof (int));

O comando malloc Se a memória do computador já estiver toda ocupada, malloc não consegue alocar mais espaço e devolve NULL. Por isso, antes de prosseguir com os comandos após a alocação, convém verificar se a alocação obteve sucesso: int *ptr; ptr = malloc (sizeof (int)); if (ptr == NULL) printf (“malloc devolveu NULL!\n");

Alocando Vetores Se vetores utilizam espaços consecutivos da memória, basta indicarmos os número de posições que desejamos em um vetor e multiplicarmos pelo número de bytes de um tipo. Exemplificando, teremos: int *ptr; int x, y; X = 10; ptr = (int *) malloc (x * sizeof (int)); Para vetores bidimensionais (matriz): ptr = (int *) malloc (x * y * sizeof (int));

O comando free A função free libera a porção de memória alocada por malloc. Sintaxe: free(<ponteiro>); Assim, se quisermos desalocar o espaço de memória realizado no exemplo anterior, faríamos: free(ptr);

Exercício em Aula Em várias cidades do interior de SP está sendo realizado um plebiscito para decidir se um conjunto de casarões deverão ser considerados patrimônios históricos. Para isso, os organizadores necessitam de um programa que contabilize o total de votos SIM em cada uma das cidades participantes. O programa deverá receber o total de votos obtidos em cada seção de cada cidade. Ao final, o programa deverá listar o total de votos em cada cidade.

Exercício em Aula Lembre-se: Você deverá indicar ao início do programa, quantas cidades estão participando do plebiscito; Cada cidade poderá ter um número de seções, assim, no início da contagem da cidade, você deverá pedir o número de seções da cidade; Cada cidade receberá um número e suas respectivas seções também serão numeradas. Assim, você só precisará armazenar números inteiros. Utilize funções para separar as tarefas que o programa necessita fazer.