Aula 24: Ponteiros e Alocação Dinâmica
|
|
- João Vítor Faria
- 5 Há anos
- Visualizações:
Transcrição
1 Aula 24: Ponteiros e Alocação Dinâmica Introdução a Programação Túlio Toffolo & Puca Huachi BCC /2 Departamento de Computação UFOP
2 Aula anterior Memória Ponteiro Utilização de ponteiros Aritmética de ponteiros 2 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
3 Aula de hoje 1 Ponteiros 2 Exercícios da aula prática 3 Mais exemplos... 4 Alocação dinâmica 5 Exercícios 6 Próxima aula 2 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
4 Aula de hoje 1 Ponteiros 2 Exercícios da aula prática 3 Mais exemplos... 4 Alocação dinâmica 5 Exercícios 6 Próxima aula 2 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
5 Ponteiros Um ponteiro (apontador ou pointer) é um tipo especial de variável que armazena um endereço de memória Ponteiros são declarados utilizando o caractere especial *: 1 int *pi; // pi é um ponteiro do tipo int 2 char *pc; // pc é um ponteiro do tipo char 3 float *pf; // pf é um ponteiro do tipo float 4 double *pd; // pd é um ponteiro do tipo double Vários podem ser declarados em uma única linha: 1 int *p1, *p2, *p3; 3 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
6 Ponteiros O conteúdo da memória apontada por um ponteiro se refere ao valor armazenado no endereço de memória para o qual o ponteiro aponta. Este conteúdo (valor) pode ser alterado usando o operador * Exemplo: 1 int main() 2 { 3 int x = 10, y = 0; 4 int *px = &x; 5 y = *px; // y recebe o conteúdo do endereço apontado por x 6 cout << "y = " << y << endl; 7 return 0; 8 } O que será impresso? 1 y = 10 4 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
7 Ponteiros Cuidado com o uso do *: Não confunda declaração de ponteiro com obtenção de conteúdo... O * a seguir é utilizado para declarar um ponteiro 1 int *p; Já o * a seguir é utilizado para obter/alterar o conteúdo da memória armazenada por um ponteiro. 1 *p = 10; 2 if ((*p) > 10) 3 cout << *p << " > 10" << endl; 5 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
8 Aula de hoje 1 Ponteiros 2 Exercícios da aula prática 3 Mais exemplos... 4 Alocação dinâmica 5 Exercícios 6 Próxima aula 5 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
9 Exercício 1 Faça um programa em C++ que encontre a última ocorrência de um caractere dentro de uma cadeia de caracteres (máximo 256 caracteres). Para isso implemente uma função que recebe a cadeia de caracteres e retorna um ponteiro para a posição. O main() deve imprimir o valor dessa posição considerando que a primeira posição é a 1. Protótipo: 1 char* procuraultimo(char *, char); Exemplo: 1 Digite um texto: Teste de execução 2 Digite o caractere para procurar: e 3 4 Última posição que ele aparece: 12 6 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
10 Exercícios da aula prática Exercício 2 Faça um programa que leia n valores, onde n 100, pertencentes ao conjunto dos números reais. Em seguida, implemente a função maior() que recebe esse vetor e retorna um ponteiro para a posição no vetor do maior elemento. Imprima a posição (endereço de memória) e o valor do maior elemento no módulo principal. Exercício 3 Faça um programa que leia n valores (n 9), em ordem crescente, pertencentes ao conjunto dos números inteiros. Em seguida, leia um número inteiro qualquer e insira nesse vetor, mantendo a ordem. Imprima o novo vetor. 7 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
11 Aula de hoje 1 Ponteiros 2 Exercícios da aula prática 3 Mais exemplos... 4 Alocação dinâmica 5 Exercícios 6 Próxima aula 7 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
12 ssagem Mais exemplos... de apontadores IV 1 void troca(int *a, int *b) { 2 int aux = *a; 3 *a = *b; 4 *b = aux; 5 } 6 7 int main() { 8 int n = 5; 9 int v[5] = { 10, 20, 30, 40, 0 }; cin >> v[n-1]; // lendo mais um nro 12 for (int i = n-1; i >= 1; i++) { 13 if (v[i] < v[i-1]) 14 troca(v+i, v+i-1); 15 else 16 break; 17 } imprimevetor(v, n); 20 } 8 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica 38/81
13 ssagem Mais exemplos... de apontadores IV 1 int *ultimo(int *v, int b, int n) { 2 int *p = v; 3 for (int i = 1; i < n; i++) { 4 if (v[i] == b) 5 p = v+i; 6 } 7 return p; 8 } 9 10 int main() { 11 int v[7] = { 0, 9, 8, 6, 5, 3, 2 }; 12 int busca; 13 cin >> busca; int *p = ultimo(v, busca, 7); int pos = p - v; 18 cout << "Pos = " << pos + 1 << endl; return 0; 21 } 9 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica 38/81
14 Aula de hoje 1 Ponteiros 2 Exercícios da aula prática 3 Mais exemplos... 4 Alocação dinâmica 5 Exercícios 6 Próxima aula 9 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
15 Alocação dinâmica Comando new: Aloca dinamicamente um bloco consecutivo de bytes na memória e retorna o endereço deste bloco. Isto permite escrever programas mais flexíveis. Exemplo de uso: alocar um vetor de tamanho definido pelo usuário / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
16 Alocação dinâmica Uso do método new para criar um double: 1 // aloca memória de forma dinâmica 2 double *nro = new double; 3 4 // altera o conteúdo da memória apontada por nro para *nro = 3.5; 6 7 cout << "Endereço de memória: " << nro << endl; 8 cout << "Valor na memória: " << *nro << endl; Este código imprimirá, por exemplo (arquitetura 64 bits): 1 Endereço de memória: 0x7feaf Valor na memória: / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
17 Alocação dinâmica Uso do método new para criar um double com valor inicial: 1 // aloca memória de forma dinâmica e inicializa com valor double *nro = new double(10.5); 3 4 cout << "Endereço de memória: " << nro << endl; 5 cout << "Valor na memória: " << *nro << endl; Este código imprimirá, por exemplo (arquitetura 64 bits): 1 Endereço de memória: 0x7feaf Valor na memória: / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
18 Alocação dinâmica Uso do método new para criar um bloco com 3 doubles: 1 // aloca memória de forma dinâmica e inicializa com valor double *nro = new double[3]; 3 4 // alterando valores 5 nro[0] = 1.1; 6 nro[1] = 1.5; 7 nro[2] = 2.2; 8 9 for (int i = 0; i < 3; i++) 10 cout << nro[i] << " "; Este código imprimirá: / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
19 Exemplo de alocação dinâmica Alocação dinâmica de memória VIII 1 int main() { 2 int *a = nullptr; 3 a = new int[6]; 4 for (int i = 0; i < 6; i++) 5 a[i] = i; 6 imprimevetor3(a, 6); } Cria o ponteiro a com valor inicial nullptr (0x0). 14 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica 67/81
20 Exemplo de alocação dinâmica Alocação dinâmica de memória IX 1 int main() { 2 int *a = nullptr; 3 a = new int[6]; 4 for (int i = 0; i < 6; i++) 5 a[i] = i; 6 imprimevetor3(a, 6); } Aloca um bloco de memória com 6 inteiros (usando o comando new) Armazena o endereço de memória no ponteiro a. 15 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica 68/81
21 Exemplo de alocação dinâmica Alocação dinâmica de memória X 1 int main() { 2 int *a = nullptr; 3 a = new int[6]; 4 for (int i = 0; i < 6; i++) 5 a[i] = i; 6 imprimevetor3(a, 6); } Altera o valor de a[0], a[1],..., a[5] 16 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica 69/81
22 Muito importante: liberar a memória A memória alocada pelo compilado é liberada ao final do escopo da variável automaticamente. Quando fazemos alocação dinâmica, é nossa obrigação liberar a memória. Em C++ usamos o operador delete Exemplo (1): 1 int *a = new int; delete a; 17 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
23 Muito importante: liberar a memória A memória alocada pelo compilado é liberada ao final do escopo da variável automaticamente. Quando fazemos alocação dinâmica, é nossa obrigação liberar a memória. Em C++ usamos o operador delete Exemplo (2): 1 int *v = new int[6]; delete[] v; 18 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
24 ssagem Exemplos de apontadores IV 1 void levetor(int *v, int n) { 2 for (int i = 0; i < n; i++) 3 cin >> v[i]; 4 } 5 6 int *maior(int *v, int n) { 7 int *maior = v; 8 for (int i = 1; i < n; i++) 9 if (v[i] > *maior) 10 maior = v + i; 11 return maior; 12 } int main() { 15 int n, *v; 16 cin >> n; 17 v = new int[n]; 18 levetor(v, n); 19 int *maior = maior(v, n); 20 cout << "Maior = " << *maior << endl; 21 delete[] v; 22 } 19 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica 38/81
25 Aula de hoje 1 Ponteiros 2 Exercícios da aula prática 3 Mais exemplos... 4 Alocação dinâmica 5 Exercícios 6 Próxima aula 19 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
26 Exercícios Exercício 1 Crie uma função que: 1 recebe um vetor v e seu tamanho n por parâmetro; 2 cria um novo vetor por alocação dinâmica, preenchendo-o com o conteúdo de v em ordem inversa; 3 retorna este novo vetor. Dica: utilize o protótipo a seguir: 1 int *inverso(int *v, int n); Crie um exemplo de utilização desta função no método main(). Não se esqueça de liberar memória! 20 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
27 Aula de hoje 1 Ponteiros 2 Exercícios da aula prática 3 Mais exemplos... 4 Alocação dinâmica 5 Exercícios 6 Próxima aula 20 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
28 Próxima aula Ponteiros e alocação dinâmica 21 / 21 Túlio Toffolo & Puca Huachi Introdução a Programação Aula 24: Ponteiros e Alocação Dinâmica
29 / 12 Perguntas?
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 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização de ponteiros
Leia maisAula 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 maisAula 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 maisAula 08: Funções (Parte II)
Aula 08: Funções (Parte II) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Introdução a Funções Aula prática
Leia maisAula 26: Estruturas heterogêneas
Aula 26: Estruturas heterogêneas Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização
Leia maisAula 27: Estruturas heterogêneas e alocação dinâmica
Aula 27: Estruturas heterogêneas 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 Aulas anteriores Memória
Leia maisAula 20: Matrizes (Parte 2)
Aula 20: Matrizes (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Vetores Matrizes 2 / 15 Túlio Toffolo
Leia maisEstrutura de dados 1. Ponteiros
Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem
Leia maisAula 28: Arquivos de texto
Aula 28: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides de Guillermo Cámara-Chávez Aulas anteriores Memória Ponteiro Utilização
Leia maisAula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi
Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exercícios da aula prática 2 Vetores 3 Exemplos
Leia maisAula 17: Funções (Parte III) e Introdução a Vetores
Aula 17: Funções (Parte III) e Introdução a Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exemplos
Leia maisAula 05: Condicionais (Parte 2)
Aula 05: Condicionais (Parte 2) 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 Breve Revisão Comandos de Decisão
Leia maisAula 11: Laços e exercícios
Aula 11: Laços e exercícios 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 Manipulação de laços Exercício 2 /
Leia maisBCC Introdu c ao ` a Programa c ao I Ponteiros Guillermo C amara-ch avez UFOP 1/54
BCC 201 - Introdução à Programação I Ponteiros Guillermo Cámara-Chávez UFOP 1/54 Ponteiros... I i n t main ( ) { i n t x ; x = 10 cout
Leia maisESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS
ESTRUTURA DE DADOS VARIÁVEIS E PONTEIROS Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender a organização dos dados na memória Compreender o que são ponteiros Capacitar para implementar programas com
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 02: Alocação Dinâmica de Memória Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maisAula 10: Manipulação do fluxo de laços
Aula 10: Manipulação do fluxo de laços 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 Laços aninhados Exemplos
Leia maisAula 29: Arquivos binários
Aula 29: Arquivos binários Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização de ponteiros
Leia maisPonteiros. 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 maisBCC 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 maisAlocação Dinâmica. Túlio Toffolo BCC202 Aula 02 Algoritmos e Estruturas de Dados I
Alocação Dinâmica Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 02 Algoritmos e Estruturas de Dados I Esquema de Memória baixa Código do Programa Variáveis Globais e Estáticas Memória
Leia maisPonteiros 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 maisLinguagem 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 maisANHANGUERA ESTRUTURA DE DADOS AULA 04 MATRIZES, LISTAS E ALOCAÇÃO DINÂMICA. Prof. Thomás da Costa
ANHANGUERA 2015.2 ESTRUTURA DE DADOS AULA 04 Prof. Thomás da Costa thomascosta@aedu.com O que é: Matrizes São vetores que possuem duas ou mais dimensões para armazenar valores. Uma matriz de duas dimensões,
Leia maisAula 16: Laços aninhados e desvios
Aula 16: Laços aninhados e desvios Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Comandos de Repetição (Parte
Leia maisAula 06: Condicionais (switch)
Aula 06: Condicionais (switch) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Condicionais (if - else) Exemplos
Leia maisIntrodução a Ponteiros e Vetores em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Introdução a Ponteiros e Vetores em C Material preparado pela profa Silvana Maria Affonso de Lara e utilizado por
Leia maisPonteiros, 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 maisIntrodução à linguagem C++
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas
Leia maisAula 03: Introdução a C
Aula 03: Introdução a C Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior O que é um computador Organização de um
Leia maisAlocação Dinâmica de Memória
Alocação Dinâmica de Memória Paulo Ricardo Lisboa de Almeida 1 Endereços de variáveis Toda variável possui um endereço na memória da máquina. O que muda em uma variável é o seu valor armazenado, não seu
Leia maisPrincí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#include<iostream> using namespace std; main(){ int i=20; int *p; p=&i; cout << "Valor da variável: " << *p << endl; }
Aula 2 Ponteiros Ponteiros são um tipo de variável que aponta para outra, ou seja, um ponteiro guarda o endereço de memória de uma variável. No exemplo abaixo, observe que: (i) a variável p é do tipo ponteiro
Leia maisPonteiros de Variáveis
Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem
Leia maisA 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 maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisExercí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 maisPonteiros 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 maisAula 15: Introdução a Funções
Aula 15: Introdução a Funções 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 Laços aninhados Exemplos diversos
Leia maisPonteiros 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 mais1 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 maisUniversidade 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 maisEstruturas 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 maisAula 15: Repetição (Parte 3)
Aula 15: Repetição (Parte 3) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
Leia maisComputaçã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 maisPonteiros. Ponteiros. Ponteiros. Ponteiros. Ponteiros. Introdução a Programação. Profa. Roseli Romero
ICMC USP 1.semestre/2009 Introdução a Programação e vetores em C Profa. Roseli Romero um é uma variável que contém o endereço um dado declaração: * indica que a variável é um tipo_dado *nome_; int x; int
Leia maisAlocaçã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 maisMCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)
MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 3Q-2017 1 Sobre funções ( uma ideia ) 2 Qual função é mais eficiente? 3 1995 2015 4 Qual
Leia maisAula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU
Aula 8 Oficina de Programação Vetores Profa. Elaine Faria UFU - 2017 Variáveis Compostas Homogêneas O que uma variável composta homogênea? - Conjunto de variáveis do mesmo tipo - É chamada de forma geral
Leia mais1 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 maisExercí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 maisAula 06 Introdução à Programação Matrizes
Aula 06 Introdução à Programação Matrizes Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Roteiro Matrizes Unidimensionais (Vetor) Bidimensionais String Exercícios Gustavo Callou DEINFO/UFRPE
Leia maisDAS5102 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 maisLista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2
Leia maisPonteiros. 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 maisLinguagem C ponteiros
Linguagem C ponteiros IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Vetores Matrizes Funções Recursão Registros Aula
Leia maisSumá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 maisMais sobre Ponteiros em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Mais sobre Ponteiros em C Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO
Leia maisProgramaçã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 maisPonteiro. 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 maisPonteiros. 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 maisALOCAÇÃ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 maisponteiros 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 maisAula 26: Arquivos de texto
Aula 26: Arquivos de texto 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 heterogêneas Alocação
Leia maisIntrodução à Disciplina de. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR
Introdução à Disciplina de Estruturas de Dados Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2019 Software = Lógica + Dados Software Niklaus Wirth (1989). Lógica
Leia maisAlocaçã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 maisPuca Huachi Vaz Penna
Aula 3 C++: variáveis e expressões aritméticas 2017/1 BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66, 32 e 33 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro
Leia maisAula 05: Condicionais (if / else)
Aula 05: Condicionais (if / else) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
Leia maisAlgoritmos 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 mais3. 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 maisEstrutura 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 maisINF 1007 Programação II
INF 1007 Programação II Aula 08 Vetor de Ponteiros Edirlei Soares de Lima Vetor de Cadeia de Caracteres Um vetor de cadeia de caracteres pode ser alocado de duas formas: Alocação
Leia maisPonteiros 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 maisProgramaçã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 maisTÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO
TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO Ponteiros Definição Variável: área de memória que armazena dados de um certo tipo. Na memória, toda variável possui um endereço. Um Ponteiro é uma variável especial
Leia maisAula 07: Introdução a Funções
Aula 07: Introdução a Funções Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Comandos condicionais Exemplos diversos
Leia maisAula 30: Revisão para Prova 03
Aula 30: Revisão para Prova 03 Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC202 2019/1 Departamento de Computação UFOP Avaliação 3 Provas (60% da nota): Prova 01: 15%
Leia maisLinguagem 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 maisProgramação II. Ponteiros. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Ponteiros Bruno Feijó Dept. de Informática, PUC-Rio Ponteiro Ponteiro (pointer) é uma variável que armazena o endereço de uma variável. p Sempre inicialize ponteiros! Ponteiros não inicializados
Leia maisPonteiros. 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 maisComputadores 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 maisMC-102 Aula 21 Registros
MC-102 Aula 21 Registros Instituto de Computação Unicamp 27 de Outubro de 2016 Roteiro 1 Registros Declarando um novo tipo de Registro Acessando os campos de um Registro Lendo e Escrevendo Registros Atribuição
Leia maisMé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 maisECT1203 Linguagem de Programação
Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira
Leia maisApontadores/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 maisINF 1007 Programação II
INF 1007 Programação II Aula 07 Vetor de Ponteiros Edirlei Soares de Lima Vetor de Cadeia de Caracteres Vetores de cadeias de caracteres. Exemplo: char alunos[50][81]; Função para
Leia maisLinguagem 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 maisIntroduçã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 maisAlocaçã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 maisLinguagem 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 maisAula 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 maisCMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira
CMP1048 - Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira 1. Considere um programa em C++ que tenha duas variáveis declaradas
Leia maisGilberto A. S. Segundo. 24 de agosto de 2011
Exercícios - Alocação Dinâmica Gilberto A. S. Segundo Programação Aplicada de Computadores Engenharia Elétrica Universidade Federal do Espírito Santo - UFES 24 de agosto de 2011 1 / 23 Grupo de e-mail
Leia maisBruno 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 maisEstruturas (registros)
BCC 201 - Introdução à Programação I Estruturas (registros) Guillermo Cámara-Chávez UFOP 1/44 Estruturas (struct) I Imaginemos que queremos ler as notas de 4 provas para um aluno e calcular a média do
Leia maisLaborató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
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 maisReinaldo 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 maisMCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)
MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2) Prof. João Henrique Kleinschmidt Material elaborado pelo prof. Jesús P. Mena-Chalco 3Q-2018 Sobre funções ( uma ideia ) Qual função é mais
Leia maisMétodos Computacionais. Funções, Escopo de Variáveis e Ponteiros
Métodos Computacionais Funções, Escopo de Variáveis e Ponteiros Tópicos da Aula Hoje vamos detalhar funções em C Escrevendo funções Comando return Passagem de argumentos por valor Execução de uma função
Leia mais