Apontadores. Ponteiros pointers

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

Download "Apontadores. Ponteiros pointers"

Transcrição

1 Apontadores Ponteiros pointers

2 sumário Introdução à programação Introdução e conceitos básicos Noção de variável, endereço e apontador Operadores & e * Noção de NULL Declaração e Incialização do apontadores Aritmética de apontadores Apontadores para apontadores Memória dinâmica Passagem de ponteiros para funções Retorno de ponteiros de funções

3 História no país s dos telefones Todas os habitantes têm uma casa individual. Tamanhos e design diferente Todas casa têm um telefone Excepto os grandes criminosos e suspeitos de actividades ilegais. Cada casa tinha uma morada que é única no país. Serve para entregar o correio, cobrar impostos, etc. Ninguém muda de casa Mudam frequentemente de telefone

4 Bairro da Alegria Ana Ana Pedro Pedro Rua dos amores, lote 12 Calçada da Amizade, nº13 Avenida da Paixão, nº 69 As casas servem para guardar telefones int intj=10; float floatarea=10.5; Telefone joao= joao= ; Telefone ana= ana= ; Telefone pedro= ; printf( %d, j); j); printf( %f, area) area) printf( %d, joao); joao); printf( %d, ana); ana); printf( %d, pedro);

5 Identificação das casas Bom dia, já foste a morada do joão? Ainda não, venho agora da morada do Pedro, e ainda vou passar pela morada da Ana antes. Já foste à Rua dos amores, lote 12? Ainda não, venho agora da Avenida da Paixão, nº 69 e ainda vou passar pela Calçada da Amizade, nº13 antes. Cada casa é identificada inequivocamente por por uma de de duas coisas: O O nome de de quem lá lámora O O seu seu endereço Ana Ana Pedro Pedro idade 18 b:1 Rua dos amores, lote 12 Calçada da Amizade, nº13 Avenida da Paixão, nº 69

6 Operador & O operador & devolve o endereço de de uma variável Bom Bom dia, dia, já jáfoste á morada do do joão? Ainda não, não, venho agora da da morada do do Pedro, e ainda vou vou passar pela pela morada da da Ana Ana antes Rua dos amores, lote 12 Bom dia, já jáfoste a &joão? Ainda não, venho agora da da &Pedro, e ainda vou passar pela &Ana antes. Bom, dia, já jáfoste à Rua dos amores, lote 12? Ainda não, venho agora da da Avenida da da Paixão, nº nº 69 e ainda vou passar pela Calçada da da Amizade, nº13 antes.

7 Endereço, nome e conteúdo Conversa Bom Bom dia, dia, já jáfoste a casa do do joão? Não Não vou vou telefonar para para ele ele Abreviatura Bom dia, já jáfoste a &joão? Não vou telefonar para joão. Tradução Bom, dia, já jáfoste à Rua dos amores, lote 12? Não vou telefonar para Rua dos amores, lote 12 idade 18 b:1

8 Endereço o e conteúdo O operador & devolve o endereço de de uma variável O nome de de uma variável devolve o seu conteúdo No printf %p imprime um endereço C printf( %d, soma) soma) printf( %p, &soma); printf( %d,joao); printf( %p,&joao); :03 02: Rua Rua dos dos amores, lote lote Rua dos amores, lote 12

9 Promoção SuperDrive Super Drive Para mais informação &joão Rua dos amores, lote 12

10 Hackarina Terrível pirata informático Fez-se passar por homem num chat da internet Desvio de vários megabites num servidor Sequestro de três discos de alta densidade Um nem formatado estava! Liberdade condicional Não pode ter telefone Dificultar as suas actividades ilícitas Doente Taxa de furtoesterol elevada A ambulância só pode ser chamada por telefone O empresta o seu telefone Devolveu os agrafos usados. Hackarina Praceta do já enganei +1

11 Bairro da Alegria Ana Ana Pedro Pedro Rua dos amores, lote 12 Calçada da Amizade, nº13 Rua dos amores, lote 12 Avenida da Paixão, nº 69 Hackarina Praceta já enganei +1

12 Declaração e Incialização de apontadores Rua dos amores, lote Ana Ana Calçada da Amizade, nº13 Rua dos amores, lote Pedro Pedro Avenida da Paixão, nº 69 Declaração tipo tipo nome; Telefone joao; joao; Telefone ana; ana; Telefone pedro; pedro; Telefone *hackarina; Hackarina Praceta já enganei +1 Incialização tipo tipo nome = valor; Telefone joao= joao= ; Telefone ana= ana= ; Telefone pedro= ; Telefone *hackarina = &joao; Atribuição nome = valor; joao= joao= ; ana= ana= ; pedro= ; hackarina = &joao;

13 Conteúdo de um apontador Rua dos amores, lote Ana Ana Calçada da Amizade, nº13 Rua dos amores, lote 12 Hackarina Praceta já enganei Pedro Pedro Avenida da Paixão, nº 69 Qual Qual o Nº Nº de de telefone telefone das das pessoas pessoas printf( %d,joao); printf( %d,ana); printf( %d,pedro); printf( %d, *hackarina ); ); ; ; ; C O operador & devolve o endereço de de uma variável O nome de de uma variável devolve o seu conteúdo O operador * devolve o conteúdo de de um apontador

14 Abreviatura de conversas Expressão Joao &joao Hackarina &Hackarina *Hackerina Valor Rua dos amores, lote 12 Rua dos amores, lote 12 Praceta já enganei Descrição Valor de joao Endereço de joao Valor de Hackarina Endereço de Hackarina Valor apontado por Hackarina Rua dos amores, lote 12 Rua dos amores, lote 12 Hackarina Praceta já enganei +1 apontadores Endereço próprio Endereço apontado Valor apontado

15 Hackarina em acção Rua dos amores, lote 12 Ataque Ao Ao telefone Rua dos amores, lote 12 Hackarina Praceta já enganei +1 C *hackarina = ; Expressão Hackarina &Hackarina *Hackarina Joao Valor Rua dos amores, lote 12 Praceta já enganei Descrição Valor de hackarina Endereço de hackarina Valor apontado por hackarina Valor de joao

16 Hackarina engana Rua Calçada dos da amores, lote Amizade, 12 nº Ana Ana Rua dos amores, lote 12 Hackarina Praceta já enganei +1 Calçada da Amizade, nº13 C hackarina = &ana; Expressão Hackarina &Hackarina *Hackarina Valor Calçada da Amizade, nº13 Praceta já enganei Descrição Valor de hackarina Endereço de hackarina Valor apontado por hackarina

17 Happy End A Ana proibiu a Hackarina de utilizar o seu telefone Levou sem autorização a sombra das árvores do quintal Hackarina deixar a banditagem Eu próprio o deixo de telefonar de minha casa. Onde estão os restantes acetatos!!!!!! Vamos começar a aula sobre apontadores Fui Roubado!!

18 Apontadores em C

19 Variáveis Introdução à programação a b c d e f a:0 a:1 a:2 a:3 a:4 a:5 a:6 idade 24 b:0 b:1 b:3 b:4 b:5 b:6 sexo c:0 c:1 c:2 c:3 m c:4 c:5 c:6 d:0 d:1 d:2 d:3 d:4 d:5 d:6 Peso e:0 e:1 e:2 e:6 f:0 f:1 f:2 f:3 f:4 f:5 f:6 6 int intidade idade =24; =24; char charsexo = m m float floatpeso=74.32, printf( %d %p, %p, idade, idade, idade idade ); ); printf( %c %p, %p, sexo, sexo, &sexo &sexo); ); printf( %f %p, %p, peso peso,,&peso); b:1 b:1 m c:3 c: e:2 e:2 O endereço o de de um a variável vel é sempre o menor dos endereços que ela ocupa em memória

20 Ponteiros Introdução à programação a b c d e f a:0 a:1 a:2 a:3 a:4 a:5 a:6 a:7 idade pti ptc ptf b:0 b:1 24 b:3 b:4 b:5 b:1 b:6 c:3 b:7 e:2 sexo c:0 c:1 c:2 c:3 m c:4 c:5 c:6 c:7 d:0 d:1 d:2 d:3 d:4 d:5 d:6 d:7 Peso e:0 e:1 e:2 e:6 e:7 f:0 f:1 f:2 f:3 f:4 f:5 f:6 f:7 int intidade idade =24; =24; char charsexo = m ; m ; float floatpeso=74.32; int int *pti *pti = &idade; char char *ptc *ptc = &sexo; float float *ptf *ptf = &peso; idade pti b:1 b:5 b:1 Duas formas de de manipular os os dados: Variavel (idade) Conteúdo do do ponteiro ((*pti) C idade = 18; *pti = 18;

21 Incialização de Ponteiros a a b b c c pt2 pt3 pt2 pt3 a:0 a:1 a:2 a:3 a:4 NULL a:5 NULL a:6 a:0 a:1 a:2 a:3 a:4 NULL a:5 NULL a:6 idade pti ptc idade pti ptc b:0 b:1 24 b:3 b:4 b:5 b:0 b:1 24 b:3 b:4 b:5 b:1 b:1 b:6 c:3 b:6 c:3 sexo sexo c:0 c:1 c:2 c:3 m c:0 c:1 c:2 c:3 C c:4 c:5 c:6 c:4 c:5 c:6 A constante simbólica NULL representa o endereço de de memória 0 e indica que o apontador não aponta para nenhuma variável short shortidade =24; =24; char charsexo = m ; m ; int int *pti *pti = &idade; char char *ptc *ptc = &sexo; int int *pt1 *pt1 = NULL; NULL; int int *pt2 *pt2 = NULL; NULL; C NULL = (void *) 0

22 Para que servem os ponteiros? Aceder directamente à memória do computador RAM Portos Etc. Alteração de parâmetros dentro de funções Tratamento de estruturas homogéneas de dados (EHD) - vectores e arrays Optimização de memória EHD com tamanho variável Alteração do tamanho em tempo de execução Passar EHD para funções Retorno de EHD de funções

23 Passagem de parâmetros por ponteiro Construa uma função que troque dois números e teste-a Função Função troca troca void void troca(int *x, *x, int int * y) y) { int int aux= aux= * x; x; *x= *x= * y; y; *y=aux; } Programa Programa... int int a= a= 20; 20; int int b= b= 10; 10; troca troca (& (& a, a, &b); &b); Printf(" a= a= %d %d b=%d b=%d ",a, ",a, b); b); Variáveis Variáveis X X y y aux aux Variáveis Variáveis a a b b a= 10 b= 20

24 Apontadores e vectores char nota[8] O nome de um vector: a nota b b:0 ptr a:0 a:2 a:3 a:4 a:5 a:6 a:7 nota[0] nota[1] nota[2] nota[3] nota[4] nota[5] nota[6] nota[7] b:0 12 b:1 12 b:2 20 b:3 16 b:4 10 b:5 9 b:6 16 b:7 17 Não é possível alterar o seu seu conteúdo Apontador constante Cada Elemento ocupa posições consecutivas b:0 Char Char *ptr=nota; Não é necessário o & porque corresponde ao ao endereço o do do seu seu primeiro nota é um elemento ponteiro Pode-se atribuir o valor de de um um vector a um um ponteiro

25 Apontadores e vectores Telefone Alegria[5] Alegria Rua dos amores porta1 Rua da estrada Não Não é necessário o & porque um um vector vector é um um apontador Telefone *ptr = alegria ptr Rua dos amores porta1 Rua da do desterro Alegria[0] Alegria[1] Alegria[2] Alegria[3] Alegria[4] Rua dos amores porta1 Rua dos amores porta2 Rua dos amores porta3 Rua dos amores porta4 Rua dos amores porta5 Ptr[0] Ptr[1] Ptr[2] Ptr[3] Ptr[4]

26 Aritmética tica de Apontadores Atribuição = Alterar o conteúdo pt = &var Alterar o conteúdo apontado *pt = valor Adição ++ ou + inteiro Um apontador avança sempre o número de bytes que ele aponta Subtracção -- ou - inteiro Um apontador recua sempre o número de bytes que ele aponta Diferença A diferença só pode ser realizada entre apontadores do mesmo tipo Determina quantos elementos existem entre os apontadores Comparação Só pode ser realizada entre apontadores do mesmo tipo Valor obtido pela valor dos endereços que guardam Indexação Os vectores são apontadores e os apontadores podem ser tratados como vectores

27 Exemplos Introdução à programação a nota b:0 b:0 ptrnota a:0 a:2 a:3 a:4 a:5 a:6 a:8 a:9 nota[0] nota[1] nota[2] nota[3] nota[4] nota[5] nota[6] nota[7] b b:0 12 b:1 12 b:2 20 b:3 16 b:4 10 b:5 9 b:6 16 b:7 17 b:8 b:9 ptr1 ptr2 c Idade c:0 i:1 c:2 c:3 i:1 c:5 c:6 i:1 c:8 c:9 idade[0] idade[1] idade[2] idade[3] i i:0 i:1 24 i:3 24 i:5 24 i:7 24 i:9 9 char *ptrnota=nota ptrnota++ ptrnota+=2 ptrnota-- Nota > ptrnota int *ptr1=*ptr2=idade; ptr1 +=3; ptr2 ptr1 ptr1 < ptr2 Indexação Nota[0] *ptrnota ptrnota[5]; *Idade; * (ptr1 + 2); Ptr[3];

28 Memória dinâmica Hackarina Contruir Casas Ponteiro = Constroi TipoCasa Rua do já enganei +1 *Hackarina Porta 5

29 Alocar Memória void * malloc(numero de bytes) Devolve um um apontador para para a memória reservada int int *ptri; char char *ptrc; *ptrc; double double *ptrd; *ptrd; ptri ptri = (int (int*) *) malloc(4); ptrc ptrc = (char (char*) *) malloc(1); ptrc ptrc = (double *) *) malloc(8); int sizeof(tipo) Calcula Calcula o número de de bytes bytes que que o para para metro metro ocupa ocupa int int *ptri; ptri ptri = (int (int*) *) malloc( sizeof(int) ); ); char char *ptrc; *ptrc; ptrc ptrc = (char (char*) *) malloc(sizeof(char) ); ); double double *ptrd; *ptrd; ptrc ptrc = (double *) *) malloc(sizeof(double) ); );

30 Alocar Memória e atribuir valores int int *ptri; ptri ptri = (int (int*) *) malloc( sizeof(int) ); ); *ptri *ptri = 24; 24; char char *ptrc; *ptrc; ptrc ptrc = (char (char*) *) malloc(sizeof(char) ); ); *ptrc *ptrc = m ; m ; double double *ptrf; *ptrf; ptrc ptrc = (float (float*) *) malloc(sizeof(float) ); ); *ptrf *ptrf = 74.32; 74.32; a b c d e a:0 a:1 a:2 a:3 a:4 a:5 a:6 a:7 *pti b:0 b:1 24 b:3 b:4 b:5 b:1 b:6 c:3 b:7 e:2 *ptc c:0 c:1 c:2 c:3 m c:4 c:5 c:6 c:7 d:0 d:1 d:2 d:3 d:4 d:5 d:6 d:7 *ptrf pti ptc ptf e:0 e:1 e:2 e:6 e:7

31 Libertar Memória free ( apontador) destruir variáveis int int *ptri; ptri ptri = (int (int*) *) malloc( sizeof(int) ); ); *ptri *ptri = 24; 24; char char *ptrc; *ptrc; ptrc ptrc = (char (char*) *) malloc(sizeof(char) ); ); *ptrc *ptrc = m ; m ; double double *ptrf; *ptrf; ptrc ptrc = (float (float*) *) malloc(sizeof(float) ); ); *ptrf *ptrf = 74.32; 74.32; free(ptri); 0 free(ptrc); free(ptrf); a b c d e a:0 a:1 a:2 a:3 a:4 a:5 a:6 a:7 b:0 b:1 24 b:3 b:4 b:5 b:1 b:6 c:3 b:7 e:2 c:0 c:1 c:2 c:3 m c:4 c:5 c:6 c:7 d:0 d:1 d:2 d:3 d:4 d:5 d:6 d:7 e:0 e:1 e:2 e:6 e:7 *pti *ptc *ptrf pti ptc ptf

32 Memória dinâmica ptr1 Contruir Ruas Rua da estrada Ptr1[0] Ptr1[1] Ptr1[2] Ptr1[3] Ptr1[4] Porta 1 Porta 2 Porta 3 Porta 4 Porta 5 ptr2 Ptr2[0] Ptr2[1] Ptr2[2] Ptr2[3] Ptr2[4] Ptr2[5] Rua do desterro Porta 100 Porta 102 Porta 104 Porta 106 Porta 108 Porta 110

33 Memória dinâmica Apontadores com memória própria pria int int *notas, max; Scanf( %d,&max); notas = (int (int*) *) malloc( sizeof(int) * max max ); );... free(notas); a b c d e 0 a:0 a:1 a:2 a:3 a:4 a:5 a:6 a:7 notas b:0 b:1 d: max b:2 b:3 b:5 b:6 b:7 c:0 c:1 c:2 c:3 c:4 c:5 c:6 c:7 d:0 d:1 d:2 d:3 d:4 d:5 d:6 d:7 e:0 e:1 e:2 e:3 e:4 e:5 e:6 e:7 6

34 Apontadores de Apontadores a b c d c:4 ptr2 a:0 a:1 a:3 a:4 a:5 a:6 a:7 a:8 b:0 b:1 b:2 b:3 b:4 b:5 b:6 b:7 b:8 ptr1 c:0 c:1 c:2 c:3 c:4 d:7 c:6 c:7 c:8 d:0 d:1 d:2 d:3 d:4 d:5 d:6 d: x 10 Int Intx=10 Int Int *ptr1= &x &x Int Int **ptr2 = &ptr1 &ptr1 Printf( %d,, *ptr1); Printf( %p, *ptr2 *ptr2); ); Printf( %d,, **ptr2 ); ); C:4 C: Ptr2 Rua da estrada Ptr1 Rua 1 X 10 Porta 4

35 Apontadores de Apontadores Ptr1 Rua da estrada Hurbanização 3 Ruas Ruas 5 casas casas por por rua rua Ptr1[0] Ptr1[0][0] Ptr1[0][1] Ptr1[0][2] Ptr1[0][3] Ptr1[0][4] Rua 1 Rua 1 Porta 1 Rua 1 Porta 2 Rua 1 Porta 3 Rua 1 Porta 4 Rua 1 Porta 5 Ptr1[1] Ptr1[1][0] Ptr1[1][1] Ptr1[1][2] Ptr1[1][3] Ptr1[1][4] Rua 2 Rua 2 Porta 1 Rua 2 Porta 2 Rua 2 Porta 3 Rua 2 Porta 4 Rua 2 Porta 5 Ptr1[3] Ptr1[0][0] Ptr1[0][1] Ptr1[0][2] Ptr1[0][3] Ptr1[0][4] Rua 3 Rua 3 Porta 1 Rua 3 Porta 2 Rua 3 Porta 3 Rua 3 Porta 4 Rua 3 Porta 5

36 Arrays quadrados a b c d e f g h 0 a:0 a:1 a:2 a:3 a:4 a:5 a:6 a:7 b:0 b:1 d: notas b:2 b:3 b:4 b:5 b:6 b:7 c:0 c:1 c:2 c:3 c:4 c:5 c:6 c:7 notas[0] d:0 d:1 d:2 d:4 e:0 e:1 e:2 e:4 notas[0] d:3 d:4 d:5 d:6 d:7 e:3 e:4 e:5 e:6 e:7 f:0 f:1 f:2 f:4 f:3 f:4 f:5 f:6 f:7 notas[0] h:0 g:1 g:2 g:4 notas[0][0] notas[0][1] notas[0][2] notas[0] notas[1][0] notas[1][1] notas[2][0] notas[3][0] notas[2][1] notas[3][1] notas[1][2] notas[2][2] notas[3][2] g:3 g:4 g:5 g:6 g:7 h:0 h:1 h:2 h:3 h:4 h:5 h:6 h:7 int linhas=4; int colunas=3; int **notas; notas notas = (int( (int **) **) malloc(linhas * sizeof(int) ) ); ); for( for( y=0; y=0; y < colunas;y++) notas[y] ] = (int( (int *) *) malloc(colunas* sizeof(int) ) ); );

37 Arrays quadrados a b c d e f g h 0 a:0 a:1 a:2 a:3 a:4 a:5 a:6 a:7 b:0 b:1 d: notas b:2 b:3 b:4 b:5 b:6 b:7 c:0 c:1 c:2 c:3 c:4 c:5 c:6 c:7 notas[0] d:0 d:1 d:2 d:4 e:0 e:1 e:2 e:4 d:3 d:4 d:5 d:6 d:7 e:3 e:4 e:5 e:6 e:7 f:0 f:1 f:2 f:4 f:3 f:4 f:5 f:6 f:7 notas[0] h:0 g:1 g:2 g:4 notas[0] notas[1][0] notas[1][1] notas[0] notas[0][0] notas[0][1] notas[0][2] notas[2][0] notas[3][0] notas[2][1] notas[3][1] notas[1][2] notas[2][2] notas[3][2] g:3 g:4 g:5 g:6 g:7 h:0 h:1 h:2 h:3 h:4 h:5 h:6 h:7 for( for( y=0; y=0; y < dim dim ;; y++) y++) free( free( notas[y] ); ); free( free( notas); notas);

38 Passagem de ponteiros para funções

39 Passagem de ponteiros para funções tipo nomefunção(tipo *apontador); tipo nomefunção(tipo **apontador); tipo * nomefunção(...); tipo **nomefunção(...); Exemplos int ** aloca( int dim); void liberta( int **sudo, int dim); void inicia( int **sudo, int dim); void imprime( int **sudo, int dim); void joga( int **sudo, int dim); int valida( int **sudo, int dim, int y, int x, int valor);

Introdução à programação Computadores e programação I 2003

Introdução à programação Computadores e programação I 2003 Ficheiros sumário Introdução à programação Revisões sobre ponteiros brir e Fechar ficheiros leitura de caracteres de ficheiros Escrita de caracteres em ficheiros Leitura e Escrita formatada em ficheiros

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

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

Linguagem de Programação C. Ponteiros

Linguagem de Programação C. Ponteiros Cristiano Lehrer Conceitos Básicos (1/3) char ch; RAM 100 101 102... 5000 5001 5002... ch ch = 'A'; RAM ch A 100 101 102... 5000 5001 5002... char *; RAM ch A 100 101 102... 5000 5001 5002... = &ch; ch

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

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 & 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

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

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

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 em C. Prof. Sérgio Carlos Portari Júnior 2010

Ponteiros em C. Prof. Sérgio Carlos Portari Júnior 2010 Ponteiros em C Prof. Sérgio Carlos Portari Júnior 2010 Introdução A diferença entre os bons programadores em C e os outros programadores em C está certamente no domínio que tem da manipulação de ponteiros.

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

Programação 11543: Engenharia Informática 6619: Tecnologias e Sistemas de Informação. Cap. 8 Endereçamento de Memória Endereçamento de Memória

Programação 11543: Engenharia Informática 6619: Tecnologias e Sistemas de Informação. Cap. 8 Endereçamento de Memória Endereçamento de Memória Programação 11543: Engenharia Informática 6619: Tecnologias e Sistemas de Informação Cap. 8 Endereçamento de Memória Endereçamento de Memória Sumário: O que nós já sabemos sobre endereçadores (ou apontadores

Leia mais

DAS5102 Fundamentos da Estrutura da Informação

DAS5102 Fundamentos da Estrutura da Informação Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa

Leia mais

LINGUAGEM C: PONTEIROS

LINGUAGEM C: PONTEIROS LINGUAGEM C: PONTEIROS Prof. André Backes DEFINIÇÃO Variável É um espaço reservado de memória usado para guardar um valor que pode ser modificado pelo programa; Ponteiro É um espaço reservado de memória

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

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

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

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

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

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

Alocação Dinâmica em C

Alocação Dinâmica em C Alocação Dinâmica em C Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm 1 O que fazer com essa apresentação 2 Introdução A alocação dinâmica de memória é uma característica

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

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

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

Plano de Aula Segunda-feira Tarde 13/10/2014 Objetivo: Introduzir o conceito de alocação dinâmica na memória e registros / structs.

Plano de Aula Segunda-feira Tarde 13/10/2014 Objetivo: Introduzir o conceito de alocação dinâmica na memória e registros / structs. Instituto Federal de Santa Catarina - Câmpus Chapecó Ensino Médio Integrado em Informática - Módulo IV Unidade Curricular: Programação Estruturada Professora: Lara Popov Zambiasi Bazzi Oberderfer Plano

Leia mais

Melhores momentos AULA 5

Melhores momentos AULA 5 Melhores momentos AULA 5 Registros e structs structs. aniversario struct { int dia; int mes; int ano; } aniversario ; dia mes ano Registros e structs Para não repetir struct... o tempo todo podemos denir

Leia mais

10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Mestrado em Engenharia Física Tecnológica

10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Mestrado em Engenharia Física Tecnológica 10 a Aula - Operadores de Molde ( Casting ). Atribuição de Memória. Ponteiros. Enumerados. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento

Leia mais

Linguagem C Apontadores. Endereços e apontadores Passagem de parâmetros para funções Apontadores e vectores Memória dinâmica

Linguagem C Apontadores. Endereços e apontadores Passagem de parâmetros para funções Apontadores e vectores Memória dinâmica Linguagem C Apontadores Endereços e apontadores Passagem de parâmetros para funções Apontadores e vectores Memória dinâmica Endereços de Memória Podemos considerar a memória como um vector M, em que cada

Leia mais

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória ALGORITMOS E ESRUTRA DE DADOS I Ponteiros Passagem por Valor e Referência Alocação de Memória 2 Agenda Ponteiros Conceitos gerais O que é Ponteiro? Declaração de Ponteiros Operadores para Ponteiros Exemplos

Leia mais

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

Aula 17: Ponteiros e Alocação Dinâmica em C 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

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

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

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

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

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

Aula 24 Ponteiros, vetores e structs

Aula 24 Ponteiros, vetores e structs Programação Aula 24 Ponteiros, vetores e structs Prof. Laura Silva de Assis Engenharia de Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis

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

Pausa para nossos comerciais

Pausa para nossos comerciais AULA 5 Pausa para nossos comerciais Plantão de dúvidas: Vinícius Horário: terças das 12h às 13h Onde: Rede Linux do IME, Bloco A, sala 127 Treinos para Maratona de Programação: Horário: quintas das 14h

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

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

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória. Ponteiros e Arrays Ponteiros são fundamentais para a programação bem sucedida em C: Passagem de parâmetros por referência; Alocação dinâmica de memória; Aumentar a eficiência de certar rotinas. Essencialmente,

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

INF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 2 Alocação Dinâmica 17/02/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Alocação dinâmica Vetores locais e funções 17/02/2014 (c) Dept. Informática - PUC-Rio 2 Alocação Dinâmica

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

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

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 11 Estruturas (Structs) Structs

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 11 Estruturas (Structs) Structs Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação Cap. 11 Estruturas (Structs) Structs Sumário: Revisitação à taxonomia de tipos de dados Características gerais de tipos

Leia mais

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays

Programação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação Cap. 7 Sumário: Classificação de tipos de dados Características gerais de tipos de dados compostos Definição de array (ou tabela)

Leia mais

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

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

Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi

Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi Aula 23: Ponteiros Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides do Prof. Guillermo Cámara-Chávez Aulas anteriores Vetores Matrizes Cadeias

Leia mais

Vetores e matrizes. MCTA028 Programação Estruturada. Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti

Vetores e matrizes. MCTA028 Programação Estruturada. Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti 1 MCTA28 Programação Estruturada Vetores e matrizes Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-218 Armazenar 1 inteiros em um programa... Usando

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

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

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

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

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

ALOCAÇÃO DINÂMICA DE MEMÓRIA

ALOCAÇÃO DINÂMICA DE MEMÓRIA INE5408 Estruturas de Dados Semestre 2008/1 Prof. Leandro J. Komosinski ALOCAÇÃO DINÂMICA DE Memória de Computador 1 byte = 8 bits (ex.: 00100110) 1 KB = 1024 bytes 1 MB = 1024 KB 1 GB = 1024 MB Meu computador

Leia mais

Computação 2. Aula 7. Profª. Fabiany Ponteiros

Computação 2. Aula 7. Profª. Fabiany Ponteiros Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra

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

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

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

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

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

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

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

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

TÉCNICO DE INFORMÁTICA - SISTEMAS

TÉCNICO DE INFORMÁTICA - SISTEMAS 782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar

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 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

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

a) Preencher um vetor com os números 0 a 10, e depois mostrar somente os elementos pares.

a) Preencher um vetor com os números 0 a 10, e depois mostrar somente os elementos pares. Instituto Federal de Santa Catarina - Câmpus Chapecó Ensino Médio Integrado em Informática - Módulo IV Unidade Curricular: Programação Estruturada Professora: Lara Popov Zambiasi Bazzi Oberderfer Plano

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

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

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

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

Aula 24: Ponteiros e Alocação Dinâmica

Aula 24: Ponteiros e Alocação Dinâmica Aula 24: Ponteiros e Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula anterior Memória Ponteiro Utilização

Leia mais

Introdução a Programação. Ponteiros para Estruturas, Outros Tipos de Estruturas

Introdução a Programação. Ponteiros para Estruturas, Outros Tipos de Estruturas Introdução a Programação Ponteiros para Estruturas, Outros Tipos de Estruturas Tópicos da Aula Hoje aprenderemos a trabalhar com ponteiros para estruturas Ponteiros para estruturas Alocação dinâmica de

Leia mais

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique

Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique Vetores e Matrizes Prof. Fabrício Olivetti de França Charles Henrique Vetores Estáticos Um vetor em C é declarado como: tipo nome[tamanho]; 2 Vetores Estáticos /* vetor de nome v1 com 100 elementos do

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

É o asterisco (*) que faz o compilador saber que aquela variável não vai guardar um valor e sim um endereço para aquele tipo especificado.

É o asterisco (*) que faz o compilador saber que aquela variável não vai guardar um valor e sim um endereço para aquele tipo especificado. UDESC Joinville Departamento de Ciência da Computação Ponteiros Os ints guardam inteiros. Os floats guardam números de ponto flutuante. Os chars guardam caracteres. Ponteiros guardam endereços de memória.

Leia mais

Apontadores/ponteiros

Apontadores/ponteiros Apontadores/ponteiros 1 Apontadores/ponteiros 1. Um ponteiro pode ser manipulado como sendo um vetor. #include int v[5] = { 10, 20, 30, 40, 50 ; int p, i; p = v; for (i = 1; i < 5; i++) printf

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

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

ponteiros INF Programação I Prof. Roberto Azevedo

ponteiros INF Programação I Prof. Roberto Azevedo ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência

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

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

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

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes? Introdução à Ciência da Computação Ponteiros em C 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

Leia mais

Linguagem C: Ponteiros. Prof. Tiago Alves de Oliveira

Linguagem C: Ponteiros. Prof. Tiago Alves de Oliveira Linguagem C: Ponteiros 1 Sumário Ponteiros; Variáveis ponteiros; Operadores de ponteiros; Expressões com ponteiros; Atribuição de ponteiros; Aritmética de ponteiros; Comparação de ponteiros; Ponteiros

Leia mais

Programação de Computadores II. Cap. 5 Vetores

Programação de Computadores II. Cap. 5 Vetores Programação de Computadores II Cap. 5 Vetores Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1

Linguagem C: Ponteiros. Prof. Leonardo Barreto Campos 1 Linguagem C: Ponteiros Prof. Leonardo Barreto Campos 1 Sumário Ponteiros; Variáveis ponteiros; Operadores de ponteiros; Expressões com ponteiros; Atribuição de ponteiros; Aritmética de ponteiros; Comparação

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

ESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018

ESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018 ESTRUTURAS DE DADOS (LEI, LM, LEE) PROGRAMAÇÃO III (LTSI) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2017/2018 Apontadores O que é um apontador? Variável que contém

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

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