Aula 17: Ponteiros e Alocação Dinâmica em C

Tamanho: px
Começar a partir da página:

Download "Aula 17: Ponteiros e Alocação Dinâmica em C"

Transcrição

1 Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 1 / 32

2 Agenda 1 Revisão e Contexto 2 Definição de Ponteiros 3 Operações com Ponteiros 4 Alocação Dinâmica de Memória Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 2 / 32

3 Agenda 1 Revisão e Contexto 2 Definição de Ponteiros 3 Operações com Ponteiros 4 Alocação Dinâmica de Memória Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 3 / 32

4 Aula Anterior: Manipulação de arquivos: Vimos o conceito de arquivos e streams em C. Stream: fluxo de dados sequenciais. Arquivo: dispositivo associado ao stream. Como abrir e fechar: associar e desassociar um stream a um arquivo. Como escrever e ler de um stream de texto. Como identificar fim de arquivo. Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 4 / 32

5 Foco da Aula de Hoje Ponteiro: Definição em relação à memória do computador. Declaração e operadores relacionados a ponteiros. Operações com ponteiros. Alocação dinâmica: Funções de alocação dinâmica. Como usá-las. Objetivos: Entender o conceito de ponteiros em memória. Aprender como alocar dinamicamente memória usando funções pré-definidas em C. Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 5 / 32

6 Agenda 1 Revisão e Contexto 2 Definição de Ponteiros 3 Operações com Ponteiros 4 Alocação Dinâmica de Memória Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 6 / 32

7 Introdução: Memória A memória principal é o local onde o computador guarda a grande maioria das variáveis alocadas no programa. O processador precisa acessar a memória frequentemente para ter acesso a esses dados. O processador acessa a memória através de endereços. O endereço indica onde um valor está na memória. Organização de uma memória de tamanho T mem : Dados: Endereços: T mem -1 Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 7 / 32

8 Introdução: Memória (II) Considere o seguinte código: 1 int main(int argc, char * argv[]){ 2 char letra = b ; 3 return(0); 4 } Neste exemplo, uma variável do tipo char é alocada. Ela ocupará uma posição de memória e, portanto, terá um endereço (por ex.: 1024).... b T mem -1 A variável letra fica associada ao endereço de memória O comando &letra retorna Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 8 / 32

9 Ponteiro Definição de Ponteiro: É uma variável que contém um endereço de memória. Esse endereço é normalmente a posição de uma outra variável na memória. Dizemos que uma variável que contém um endereço aponta para outra variável. Dados: Endereços: T mem -1 Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 9 / 32

10 Declaração de um Ponteiro Um ponteiro precisa ser declarado como tal. Para isso, usamos um tipo base, um * e um nome para o ponteiro. Declaração de Ponteiro: tipo * nome; O tipo base é o tipo da variável para que o ponteiro aponta. Exemplo de uma declaração de ponteiro para o tipo char: 1 int main(int argc, char * argv[]){ 2 char letra = b ; 3 char * ponteiro_para_letra; 4 return(0); 5 } Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 10 / 32

11 Agenda 1 Revisão e Contexto 2 Definição de Ponteiros 3 Operações com Ponteiros 4 Alocação Dinâmica de Memória Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 11 / 32

12 Operadores de Ponteiros Existem dois: & e *. Ambos são operadores unários. Operador &: devolve o endereço na memória de seu operando. Exemplo: ptr letra = &letra; Lê-se ptr letra recebe o endereço de letra. Suponha que letra tem o valor b e está no endereço Então, ptr letra tem o valor ptr_letra letra Dados: Endereços: b T mem -1 Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 12 / 32

13 Operadores de Ponteiros (II) Operador *: devolve o valor da variável localizada no endereço indicado pelo seu operando. Geralmente usado sobre variável declarada como ponteiro. Exemplo: m = *ptr letra; Lê-se m recebe o valor do endereço de ptr letra. Se ptr letra guarda o endereço 1027 da variável letra, então m terá o valor de letra. Como no endereço há o valor b, logo, m terá o valor b. * ptr_letra letra Dados: Endereços: b T mem -1 Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 13 / 32

14 Operadores de Ponteiros: Exemplo 1 1 #include <stdio.h> 2 3 int main(int argc, char * argv[]){ 4 int * ptr; 5 int a = 100; 6 int b; 7 8 ptr = &a; 9 printf("valor de a: %d\n", a); 10 printf("endereco de a: %p\n", &a); 11 printf("valor de ptr_a: %p\n", ptr); 12 printf("endereco de ptr_a: %p\n", &ptr); 13 b = *ptr; 14 printf("valor de b: %d\n", b); 15 printf("endereco de b: %p\n", &b); 16 return(0); 17 } Exemplo de saída: Valor de a: 100 Endereco de a: 0x7fffa380f600 Valor de ptr_a: 0x7fffa380f600 Endereco de ptr_a: 0x7fffa380f608 Valor de b: 100 Endereco de b: 0x7fffa380f604 Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 14 / 32

15 Atribuição com Ponteiros Podemos fazer atribuições entre ponteiros. Um ponteiro pode ser atribuído a outro. 1 #include <stdio.h> 2 3 int main(int argc, char * argv[]){ 4 int x = 0; 5 int *p1, *p2; 6 7 p1 = &x; 8 p2 = p1; 9 10 printf("p1: %p e p2: %p\n", p1, p2); /* escreve o endereço de x, 11 não seu valor! */ 12 return(0); 13 } Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 15 / 32

16 Aritmética de Ponteiros Outro tipo de expressão é a aritmética de ponteiros. Apenas as operações de adição e subtração são permitidas. Agora, o tipo base do ponteiro faz toda a diferença! As operações de aritméticas são realizadas de acordo com o tamanho em bytes do tipo. Exemplo para um ponteiro p1 declarado como int: p1++; Neste exemplo, o valor de p1 é incrementado, mas no valor de sizeof(int) = 4 (bytes). Se o endereço inicial era 2000, ele passará a ser E não 2001! Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 16 / 32

17 Aritmética de Ponteiros: Exemplo 2 Acessar elementos de um vetor usando aritmética de ponteiros: 1 #include <stdio.h> 2 3 int main(int argc, char * argv[]){ 4 int i, vet[10]; 5 int *p; 6 7 for(i = 0; i<10; i++){ 8 vet[i] = i; 9 } 10 p = vet; // atribui o ponteito p ao vetor. 11 for(i = 0; i<10; i++){ 12 printf("%d ", *(p++)); 13 // Outra forma: 14 //printf("%d ", *(p + i)); 15 } 16 printf("\n"); return(0); 19 } Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 17 / 32

18 Inicialização de Ponteiros Algumas vezes, é necessário inicializar um ponteiro. Existe uma palavra reservada para isso: NULL. Um ponteiro, então, pode ser inicializado com o valor NULL. Exemplo de trecho: 1 int * p = NULL; 2 char * s; 3 4 s = NULL; Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 18 / 32

19 Ponteiro de Ponteiros (Indireção Múltipla) É possível criar ponteiro de ponteiros. Também chamado de indireção múltipla. É um ponteiro apontando para outro ponteiro que aponta para o valor final. Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 19 / 32

20 Ponteiro de Ponteiros: Declaração Neste caso, devemos declarar da seguinte maneira: tipo **ponteiro; O acesso do valor é feito por: **ponteiro; 1 #include <stdio.h> 2 3 int main(int argc, char * argv[]){ 4 int x, *p, **q; 5 6 x = 10; 7 p = &x; 8 q = &p; 9 10 printf("%d\n", **q); // Imprime o valor de x return(0); 13 } Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 20 / 32

21 Agenda 1 Revisão e Contexto 2 Definição de Ponteiros 3 Operações com Ponteiros 4 Alocação Dinâmica de Memória Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 21 / 32

22 Alocação Dinâmica de Memória Quando declaramos uma variável ou um vetor/matriz usando tipo nome, estamos declarando estaticamente. Uma declaração estática significa que uma região de memória é alocada durante a compilação. Deste modo, a região de memória alocada é inalterável. Uma consequência é que não se pode mudar seu tamanho depois de alocada. Em C, é possível alocar memória dinamicamente. i.e., em tempo de execução. Isto permite algumas facilidades, como alocar um tamanho de vetor/matriz de acordo com o seu real tamanho. Veremos, a seguir, como podemos fazer isso. Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 22 / 32

23 Funções de Alocação Dinâmica de Memória Em C, existem funções capazes de alocar memória dinamicamente. Estas funções estão disponíveis em stdlib.h. Portanto, stdlib.h deve ser incluída no código fonte do programa. São elas: Função Significado malloc() Aloca região de memória com tamanho especificado. calloc() Mesmo que malloc(), mas inicializa com 0. realloc() Altera o tamanho da região de memória previamente alocada. free() Libera região de memória previamente alocada. Veremos aqui apenas malloc() e free(). Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 23 / 32

24 Função malloc Assinatura da função malloc: void *malloc(size_t size); A função retorna um ponteiro para void. void é um tipo vazio. Serve para indicar que a função retorna ponteiro para qualquer tipo. Devemos usar casting ao alocar memória de um tipo específico. Repare que, agora, o uso de ponteiro é imprescindível. O único parâmetro da função malloc é o tamanho em bytes. É conveniente o uso do sizeof(tipo). Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 24 / 32

25 Função free Assinatura da função free: void free(void *ptr); A função não retorna nada (procedimento). O único parâmetro da função free é o ponteiro da memória a ser liberada. Comando para desalocar memória. Importante: um malloc sempre deve ter um free associado! Memória alocada consome espaço de armazenamento. Assim que terminar o uso, ela deve ser desalocada. Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 25 / 32

26 Função malloc e free: Exemplo 3 Alocar dinamicamente um inteiro: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main(int argc, char * argv[]){ 5 int * inteiro = NULL; 6 7 // Aloca um inteiro dinamicamente. 8 // Uso de cast de ponteiro para inteiro. 9 // O tamanho em bytes é sizeof(int). 10 inteiro = (int *) malloc(sizeof(int)); 11 // Atribui um valor ao inteiro alocado dinamicamente. 12 *inteiro = 5; 13 // Escreve seu valor. 14 printf("valor do inteiro: %d\n", *inteiro); free(inteiro); 17 return(0); 18 } Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 26 / 32

27 Alocação Dinâmica de Vetores/Matrizes Uma boa utilidade da alocação dinâmica é para alocar vetores e matrizes. Útil no caso de alocar vetores/matrizes de tamanho dinâmico. Por exemplo: Pedimos para que o usuário entre com o tamanho do vetor (ou vamos lê-lo); ao se conhecer esse tamanho (durante a execução do programa), seu programa alocará dinamicamente a memória necessária para armazená-lo. Desta forma, iremos alocar exatamente a quantidade de memória necessária. Não é mais necessário superestimar o tamanho do vetor como era feito na alocação estática. Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 27 / 32

28 Alocação Dinâmica de Vetores: Exemplo 4 Alocar dinamicamente um vetor de float de tamanho indicado pelo usuário: 1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(int argc, char * argv[]){ 4 float * vet_float = NULL; 5 int tamanho_vet, i; 6 7 do{ 8 printf("digite o tamanho do vetor a ser alocado: "); 9 scanf("%d", &tamanho_vet); 10 } while(tamanho_vet <= 0 tamanho_vet > 1000); vet_float = (float *) malloc(tamanho_vet*sizeof(float)); 13 for(i=0; i<tamanho_vet; i++) 14 vet_float[i] = i / 2.0; printf("vetor de tamanho %d:\n", tamanho_vet); 17 for(i=0; i<tamanho_vet; i++) 18 printf("%.1f ", vet_float[i]); 19 printf("\n"); 20 free(vet_float); 21 return(0); 22 } Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 28 / 32

29 Alocação Dinâmica de Matrizes Para alocar matrizes, o procedimento é um pouco diferente. Uma matriz é uma espécie de vetor de vetores. Lembrando que usamos ponteiro para identificar um vetor. Sendo assim, para alocar matrizes dinamicamente, temos que: 1 alocar dinamicamente um vetor de ponteiros para o tipo da matriz, usando: tipo **ptr ptr; ptr ptr = (tipo **) malloc(m*sizeof(tipo *)); 2 para cada posição do vetor de ponteiros, alocar um novo vetor. for(i=0; i<m; i++) ptr ptr[i] = (tipo *) malloc(n*sizeof(tipo)); O tamanho do vetor de ponteiros corresponde ao número de linhas da matriz m. O tamanho de cada novo vetor corresponde ao número de colunas da matriz n. Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 29 / 32

30 Alocação Dinâmica de Matrizes (II) Para desalocar uma matriz o processo é inverso: 1 para cada posição do vetor de ponteiros, liberar o vetor usando: for(i=0; i<m; i++) free(ptr ptr[i]); 2 por último, liberar o vetor de ponteiros. free(ptr ptr); Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 30 / 32

31 Alocação Dinâmica de Matrizes: Exemplo 5 Alocar dinamicamente uma matriz m n, onde m e n são dados. 1 #include <stdio.h> 2 #include <stdlib.h> 3 int main(int argc, char * argv[]){ 4 int ** mat = NULL; 5 int m, n, i, j; 6 7 do{ 8 printf("digite as dimensoes da matriz: "); 9 scanf("%d %d", &m, &n); 10 } while(m <= 0 n<=0 m > 1000 n > 1000); // Alocacao de matriz: 13 mat = (int **) malloc(m*sizeof(int *)); 14 for(i=0; i<m; i++) 15 mat[i] = (int *) malloc(n*sizeof(int)); // continua... Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 31 / 32

32 Alocação Dinâmica de Matrizes: Exemplo 5 (cont.) 18 mat = (int **) malloc(m*sizeof(int *)); 19 for(i=0; i<m; i++) 20 mat[i] = (int *) malloc(n*sizeof(int)); for(i=0; i<m; i++) 23 for(j=0; j<n; j++) 24 mat[i][j] = i*m + j; 25 for(i=0; i<m; i++){ 26 for(j=0; j<n; j++) 27 printf("%4d ", mat[i][j]); 28 printf("\n"); 29 } // Libera a matriz: 32 for(i=0; i<m; i++) free(mat[i]); 33 free(mat); return(0); 36 } Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores IV 32 / 32

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

Leia mais

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercício. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercício Crie uma função que recebe o número de dias até um determinado evento e calcula e retorna o equivalente em meses, semanas e dias, sem usar vetor ou o conceito de vetor. Considerar que todos os

Leia mais

Ponteiros - Parte I. Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória

Ponteiros - Parte I. Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória Ponteiros - Parte I Ponteiros, Ponteiros e Vetores, Algoritmo Bubble Sort, Alocação Dinâmica de Memória Ponteiros Um ponteiro é uma variável que contém um endereço de memória. Esse endereço é normalmente

Leia mais

Introdução à Ciência da Computação I. Alocação Dinâmica. Prof. Claudio Fabiano Motta Toledo

Introdução à Ciência da Computação I. Alocação Dinâmica. Prof. Claudio Fabiano Motta Toledo Introdução à Ciência da Computação I Alocação Dinâmica Prof. Claudio Fabiano Motta Toledo Sumário Funções para alocação de memória Ponteiros para ponteiros 8/12/16 2 Funções para alocação de memória malloc(),

Leia mais

Ponteiros. Introdução

Ponteiros. Introdução Ponteiros Introdução Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma outra variável na

Leia mais

Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal

Exercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal Exercícios 1) Crie uma função que recebe os coeficientes de uma função do 2o. grau e retorna as raízes sem usar vetor. 2) Faça um programa que acha o maior e o menor inteiro dentro de um vetor de 10 inteiros,

Leia mais

Ponteiros. Introdução e Alocação Dinâmica

Ponteiros. Introdução e Alocação Dinâmica Ponteiros Introdução e Alocação Dinâmica Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma

Leia mais

Métodos Computacionais. Vetores e Matrizes Dinâmicas

Métodos Computacionais. Vetores e Matrizes Dinâmicas Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de

Leia mais

Aula 18: Funções em C

Aula 18: Funções em C Aula 18: Funções em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Funções em C Programação de Computadores IV 1 / 38 Agenda 1 Revisão e Contexto

Leia mais

Ponteiros e Alocação de Memória

Ponteiros e Alocação de Memória Algoritmos e Estrutura de Dados I Ponteiros e Alocação de Memória Prof. Paulo Henrique Pisani fevereiro/2019 Memória Podemos entender a memória como um grande vetor de bytes devidamente endereçados: 0x1051

Leia mais

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto

Programação I Ponteiros e alocação dinâmica de memória. Prof. Carlos Alberto Programação I Ponteiros e alocação dinâmica de memória Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Ponteiros O ponteiro é um tipo de dado como int, char ou float; Variáveis

Leia mais

Alocação Dinâmica. Introdução à Computação

Alocação Dinâmica. Introdução à Computação Alocação Dinâmica Introdução à Computação Alocação de memória Uso da memória: uso de variáveis globais (e está>cas): O espaço reservado para uma variável global existe enquanto o programa es>ver sendo

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Gerenciamento de Memória Copyright 2014 IFRN Agenda Introdução Alocação dinâmica Funções malloc free calloc realloc

Leia mais

Estruturas Dinâmicas - Ponteiros

Estruturas Dinâmicas - Ponteiros SSC0800 - ICC1 Teórica Introdução à Ciência da Computação I Estruturas Dinâmicas - Ponteiros Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br Sumário Ponteiros Ponteiros e Vetores Funções para alocação

Leia mais

Estruturas dinâmicas Ponteiros

Estruturas dinâmicas Ponteiros SSC0102 LABORATÓRIO DE INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO I Estruturas dinâmicas Ponteiros Prof. Claudio Fabiano Motta Toledo SUMÁRIO Ponteiros e Vetores Funções para alocação de memória PONTEIROS Declaração

Leia mais

Aula 25: Alocação Dinâmica

Aula 25: Alocação Dinâmica Aula 25: Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas de memórias heterogêneas

Leia mais

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013

Ponteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013 Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

Alocação Dinâmica em C

Alocação Dinâmica em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara

Leia mais

Ponteiros & tabelas (cont.) K&R: Capítulo 5

Ponteiros & tabelas (cont.) K&R: Capítulo 5 Ponteiros & tabelas (cont.) K&R: Capítulo 5 Sinopse da aula de hoje Pointers in a nutshell & alocação dinâmica de memória Estruturas, funções e apontadores Estruturas auto-referenciadas Exemplo de aplicação:

Leia mais

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação

Leia mais

Ponteiros e Tabelas. K&R: Capítulo 5

Ponteiros e Tabelas. K&R: Capítulo 5 Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores

Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto programa estiver executando

Leia mais

Laboratório de Introdução à Ciência da Computação I

Laboratório de Introdução à Ciência da Computação I Laboratório de Introdução à Ciência da Computação I Aula 12 Alocação dinâmica de memória Professor: Jó Ueyama Estagiária PAE: Aurea Soriano slide 1 Funções para alocação de memória malloc(), calloc(),

Leia mais

Ponteiros. Baseado nos slides do Prof. Mauro.

Ponteiros. Baseado nos slides do Prof. Mauro. Baseado nos slides do Prof. Mauro. A memória do computador é uma sequência de bytes, na qual endereçamos cada um sequencialmente. Como vimos, uma variável é uma região da memória que reservamos para armazenar

Leia mais

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011 Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto

Leia mais

Programação Computacional Aula 16: Alocação Dinâmica de Memória

Programação Computacional Aula 16: Alocação Dinâmica de Memória Programação Computacional Aula 16: Alocação Dinâmica de Memória Profa. Madeleine Medrano madeleine@icte.uftm.edu.br Definição Sempre que escrevemos um programa, é preciso reservar espaço para as informações

Leia mais

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Ponteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Ponteiros e alocação dinâmica de memória Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Ponteiros Ponteiros e vetores Passagem por cópia e por referência Alocação

Leia mais

A sintaxe para se declarar uma variável do tipo ponteiro é dada por:

A sintaxe para se declarar uma variável do tipo ponteiro é dada por: Pense duas vezes e faça uma vez. Provérbio Chinês. PONTEIROS Um ponteiro nada mais é que uma variável capaz de armazenar um número hexadecimal que corresponde a um endereço de memória de outra variável.

Leia mais

Aula 16: Manipulação de Arquivos em C

Aula 16: Manipulação de Arquivos em C Aula 16: Manipulação de Arquivos em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Manipulação de Arquivos Programação de Computadores IV 1 / 33

Leia mais

O que é um apontador em C (type pointer in C)?

O que é um apontador em C (type pointer in C)? O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora

Leia mais

Ponteiros. Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço.

Ponteiros. Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço. Logo Aula 06 Ponteiros 2 Ponteiros Embora o programador não tenha acesso ao endereço de uma variável, existem algumas situações onde é necessário a utilização deste endereço. Um exemplo clássico disto

Leia mais

Curso de Programação C em Ambientes Linux Aula 05

Curso de Programação C em Ambientes Linux Aula 05 Curso de Programação C em Ambientes Linux Aula 05 Centro de Engenharias da Mobilidade - UFSC Professores Gian Berkenbrock e Giovani Gracioli http://www.lisha.ufsc.br/c+language+course+resources Conteúdo

Leia mais

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ Ponteiros em C Adriano Joaquim de Oliveira Cruz 21 de julho de 2017 Instituto de Matemática Departamento de Ciência da Computação UFRJ 1 Resumo da Seção Introdução Declaração Incrementando e Decrementando

Leia mais

Princípios de Desenvolvimento de Algoritmos MAC122

Princípios de Desenvolvimento de Algoritmos MAC122 Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Alocação Dinâmica de Memória Motivação: Nossos programas pré-fixavam o número de variáveis a serem utilizadas. No caso

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 04 Alocação Dinâmica Edirlei Soares de Lima Vetores - Declaração e Inicialização Declaração de um vetor: int meu_vetor[10]; Reserva um espaço de memória

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.6. Ponteiros 3.6.1. Introdução 3.6.2. Uso

Leia mais

Estruturas de Dados. Profa. Juliana Pinheiro Campos

Estruturas de Dados. Profa. Juliana Pinheiro Campos Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória

Leia mais

1/34 GESTÃO DINÂMICA DE MEMÓRIA

1/34 GESTÃO DINÂMICA DE MEMÓRIA 1/34 GESTÃO DINÂMICA DE MEMÓRIA Memória Estática 2/34 Memória Estática Exemplo #include main() { int V[300], N; do{ printf ( N =? ); scanf ( %d, &N); while ((N < 0) (N > 300); for (i = 0; i

Leia mais

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Estruturas de Dados Revisão de Ponteiros Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros e Arranjos

Leia mais

SSC304 Introdução à Programação Para Engenharias. Alocação Dinâmica. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Alocação Dinâmica. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr.

Leia mais

LINGUAGEM C: ALOCAÇÃO DINÂMICA

LINGUAGEM C: ALOCAÇÃO DINÂMICA LINGUAGEM C: ALOCAÇÃO DINÂMICA Prof. André Backes DEFINIÇÃO Sempre que escrevemos um programa, é preciso reservar espaço para as informações que serão processadas. Para isso utilizamos as variáveis Uma

Leia mais

Estrutura de Dados. Aula 07 Alocação Dinâmica

Estrutura de Dados. Aula 07 Alocação Dinâmica Estrutura de Dados Aula 07 Alocação Dinâmica 2 ALOCAÇÃO DINÂMICA Existem três modos de reservar espaço de memória para o armazenamento de informações: 1ª - através do uso de variáveis globais (e estáticas).

Leia mais

Modulo 12: alocação dinâmica de memória

Modulo 12: alocação dinâmica de memória PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 12: alocação dinâmica de memória Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro porque e como utilizar a alocação dinâmica funções: malloc (

Leia mais

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta

Algoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc

Leia mais

Linguagem C. Ponteiros. Alex Vidigal Bastos.

Linguagem C. Ponteiros. Alex Vidigal Bastos. Linguagem C Ponteiros Alex Vidigal Bastos alexvbh@gmail.com Ponteiros Ponteiros são variáveis que contém endereços. Estas variáveis apontam para algum determinado endereço da memória. Em geral, o ponteiro

Leia mais

A linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica.

A linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica. Alocação de Memória Todo programa precisa utilizar memória para ser executado. Quando um programa inicia sua execução, ele começa a solicitar memória ao sistema operacional, ou seja, faz a alocação de

Leia mais

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos

Leia mais

Alocação dinâmica de Memória

Alocação dinâmica de Memória Alocação dinâmica de Memória Vetores e Arrays A variável vetor é uma variável que armazena outras variáveis, no caso tem que ser do mesmo tipo. Exemplo Criar um cont Declarar um vet com o tamanho Laço

Leia mais

Alocação Dinâmica de Memória. Programação II

Alocação Dinâmica de Memória. Programação II Alocação Dinâmica de Memória Programação II Alocação dinâmica Uso da memória Uso de variáveis globais (e estáticas): Espaço reservado para uma variável global existe enquanto o programa estiver sendo executado.

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Matrizes Alocação estática versus dinâmica Vetores bidimensionais matrizes Matrizes dinâmicas ATENÇÃO

Leia mais

Ponteiros e Alocação Dinâmica em C. Fonte: DCC UFMT (modificado)

Ponteiros e Alocação Dinâmica em C. Fonte: DCC UFMT (modificado) Ponteiros e Alocação Dinâmica em C Fonte: DCC UFMT (modificado) Definições Variáveis : endereçam uma posição de memória que contem um determinado valor dependendo do seu tipo (char, int, float, double,...)

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Vetores e alocação dinâmica Vetores Alocação dinâmica Vetores locais e funções ATENÇÃO Esta apresentação

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação ET42G Aula 21 Prof. Daniel Cavalcanti Jeronymo Conversão de tipos. Alocação dinâmica de memória. Recursão. Criação de bibliotecas, arquivos de cabeçalhos e variáveis globais.

Leia mais

Ponteiros em C. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1

Ponteiros em C. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Ponteiros em C Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Operações sobre Ponteiros Exemplos Ponteiros e Funções Alocação Dinâmica em C UDESC - Rui J. Tramontin Jr.

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Elerson R. S. Santos elerson@dcc.ufmg.br Algoritmos e Estruturas de DCC UFMG Variáveis Uma variável representa um nome simbólico para uma posição de memória. Cada posição de

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

Reinaldo Gomes Alocação Dinâmica

Reinaldo Gomes Alocação Dinâmica Algoritmos e Lógica de Programação Linguagem C Alocação Dinâmica i de Memória Reinaldo Gomes reinaldo@cefet-al.br Alocação Dinâmica Quando declaramos uma variável ou um arranjo, o compilador automaticamente

Leia mais

ALOCAÇÃO DINÂMICA DE MEMORIA Lista 10. A linguagem C/C++ possui recursos para alocação dinâmica de memoria.

ALOCAÇÃO DINÂMICA DE MEMORIA Lista 10. A linguagem C/C++ possui recursos para alocação dinâmica de memoria. ALOCAÇÃO DINÂMICA DE MEMORIA Lista 10 A linguagem C/C++ possui recursos para alocação dinâmica de memoria. As funções que trabalham com alocação de memoria se encontram na biblioteca void *calloc(int

Leia mais

5. Vetores e alocação dinâmica

5. Vetores e alocação dinâmica 5. Vetores e alocação dinâmica W. Celes e J. L. Rangel 5.1. Vetores A forma mais simples de estruturarmos um conjunto de dados é por meio de vetores. Como a maioria das linguagens de programação, C permite

Leia mais

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias s GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr.

Leia mais

AULA 6. Conceitos. Melhores momentos. Conceitos. Conceitos. Conceitos. Conceitos

AULA 6. Conceitos. Melhores momentos. Conceitos. Conceitos. Conceitos. Conceitos Melhores momentos AULA Endereços: a memória é um vetor e o índice desse vetor onde está uma variável é o endereço da variável. Com o operador & obtemos o endereço de uma variável. Exemplos: &i é o endereço

Leia mais

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco

PONTEIROS E LISTAS. Kalinka Regina Lucas Jaquie Castelo Branco PONTEIROS E LISTAS Kalinka Regina Lucas Jaquie Castelo Branco kalinka@icmc.usp.br ALOCAÇÃO DINÂMICA DE MEMÓRIA Pode-se assumir que as variáveis declaradas na cláusula variável do pseudo-código do algoritmo

Leia mais

Alocação Estática e Dinâmica. Prof. M.Sc. Mariella Berger

Alocação Estática e Dinâmica. Prof. M.Sc. Mariella Berger Alocação Estática e Dinâmica Prof. M.Sc. Mariella Berger http://www.inf.ufes.br/~mberger mberger@inf.ufes.br mariellaberger@gmail.com Alocação Estática Estratégia de alocação de memória na qual toda a

Leia mais

Aula 15: Vetores e Matrizes em C

Aula 15: Vetores e Matrizes em C Aula 15: Vetores e Matrizes em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Vetores e Matrizes Programação de Computadores IV 1 / 50 Agenda 1 Revisão

Leia mais

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento

Leia mais

Alocação Dinâmica de Memória - Exercício

Alocação Dinâmica de Memória - Exercício Alocação Dinâmica de Memória - Exercício Construa um programa que leia da entrada padrão o número de linhas e de colunas de uma matriz de floats, aloque espaço dinamicamente para esta e a inicialize, com

Leia mais

Ponteiros. prof. Fabrício Olivetti de França

Ponteiros. prof. Fabrício Olivetti de França Ponteiros prof. Fabrício Olivetti de França Anteriormente em prog. estrut. Vimos que as variáveis representando arrays em C armazenam apenas um apontador para o endereço de memória contendo os valores

Leia mais

Ponteiros. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Ponteiros. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista Ponteiros SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências

Leia mais

MC-102 Aula 19 Ponteiros II

MC-102 Aula 19 Ponteiros II MC-102 Aula 19 Ponteiros II Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Ponteiros e Alocação Dinâmica 2 Exemplo de Alocação Dinâmica de Vetores 3 Erros Comuns ao Usar Alocação Dinâmica

Leia mais

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos

Leia mais

Professor: Jó Ueyama Estagiário PAE: Heitor Freitas

Professor: Jó Ueyama Estagiário PAE: Heitor Freitas Alocação Dinâmica de Memória Professor: Jó Ueyama Estagiário PAE: Heitor Freitas Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo SSC 300 - Linguagem de Programação e Aplicações

Leia mais

Programação. Cap. 12 Gestão de Memória Dinâmica

Programação. Cap. 12 Gestão de Memória Dinâmica Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 12 Gestão de Memória Dinâmica Sumário : Utilização de memória Alocação

Leia mais

Módulo 5 Vetores e Alocação Dinâmica

Módulo 5 Vetores e Alocação Dinâmica Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Estruturas Dinâmicas - Ponteiros Parte I

Estruturas Dinâmicas - Ponteiros Parte I SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Estruturas Dinâmicas - Ponteiros Parte I Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II Slides cedidos por Karina Mochetti 2018.1 Exercício Aula Passada Faça uma função que recebe uma matriz n m representada por ponteiros e desaloque toda a memória usada por

Leia mais

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)

Alocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática

Leia mais

13. ALOCAÇÃO DINÂMICA DE MEMÓRIA

13. ALOCAÇÃO DINÂMICA DE MEMÓRIA 787878787878787878787878787878787878787878787878787878 13. ALOCAÇÃO DINÂMICA DE MEMÓRIA Sempre é necessário declarar o número de elementos do array. Mas e se ele for desconhecido? E se ele variar? Pode

Leia mais

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses 1 3 Estrutura de dados 2 Ponteiro Ponteiro 2 O ponteiro é um tipo de dado como int, char ou float. A diferença do ponteiro ponteiro guardará um endereço de memória. Por meio deste endereço pode-se acessar

Leia mais

Linguagem C Ponteiros

Linguagem C Ponteiros Linguagem C Ponteiros Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Janeiro de 2018 Unidade 14 Linguagem C - Ponteiros 1/24 Identificadores e Endereços

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Luiz Chaimowicz, Raquel O. Prates, Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados II DCC UFMG Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática

Leia mais

Ponteiros, ponteiros e vetores e alocação dinâmica de memória

Ponteiros, ponteiros e vetores e alocação dinâmica de memória Ponteiros Ponteiros ou apontadores (em inglês pointers) são variáveis cujo conteúdo é um endereço. Já vimos que variáveis são posições na memória que podem conter um determinado valor dependendo de seu

Leia mais

Alocação e Gerência de Memória: APONTADORES

Alocação e Gerência de Memória: APONTADORES Processamento Usuário Alocação e Gerência de Memória: APONTADORES Fonte ompilador Objeto Linkeditor Módulo arga Tempo de compilação Tempo de arga arregador Memória Tempo de Execução Memória Principal:

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

ED1 - Aula 01 Introducao e revisão

ED1 - Aula 01 Introducao e revisão ED1 - Aula 01 Introducao e revisão Profa. Nádia Félix Hebert Coelho Instituto de Informática Universidade Federal de Goiás Roteiro Detalhes do curso Plano de Ensino sharif Revisão Tipos Construídos Alocação

Leia mais

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda

Ponteiros e Alocação Dinâmica. Prof. Péricles Miranda Ponteiros e Alocação Dinâmica Prof. Péricles Miranda pbcm@cin.ufpe.br Memória A memória é formada por várias células. Cada célula contém um endereço e um valor. Memória Endereço Ao declararmos uma variável

Leia mais

Laboratório de Programação II

Laboratório de Programação II Laboratório de Programação II Aula 08 Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... 07 Entradas e saídas padronizadas;

Leia mais

- Mapa de memória de um processo - Ponteiros

- Mapa de memória de um processo - Ponteiros 1 MCTA028 Programação Estruturada - Mapa de memória de um processo - Ponteiros Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-2018 2 Alocação de

Leia mais

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros

Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II. Ponteiros Centro Universitário Franciscano Curso de Sistemas de Informação Disciplina de algoritmos e programação II Ponteiros Profa.: Simone Ceolin Slides (Prof.Tiago Rios da Rocha) Primeiro Semestre 2011 Sumário

Leia mais

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/61

BCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/61 BCC 201 - Introdução à Programação I Ponteiros Guillermo Cámara-Chávez UFOP 1/61 Ponteiros... I i n t main ( ) { i n t x ; x = 10 p r i n t f ( " Conteudo de x: %d \n", x ) ; p r i n t f ( " Endereco de

Leia mais

Algoritmos e Estruturas de dados

Algoritmos e Estruturas de dados Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores

Leia mais

Linguagem C: Ponteiros - Alocação Dinâmica

Linguagem C: Ponteiros - Alocação Dinâmica Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Ponteiros Alocação Dinâmica de Memória 2 3 4 Organização Ponteiros Alocação

Leia mais

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C.

Ponteiro. Ponteiro. Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Ponteiro Definição de variável apontadora Aritmética de ponteiros Ponteiros e vetores Funções e passagem por referência Structs e ponteiros Alocação dinâmica de memória Objetivo Ponteiro Ponteiro Compreender

Leia mais