Escolar Documentos
Profissional Documentos
Cultura Documentos
AED - Slides Aulas 07 - 08 - Alocacao Dinamica e Estrutura Heterogenea - Struct
AED - Slides Aulas 07 - 08 - Alocacao Dinamica e Estrutura Heterogenea - Struct
Estruturas de Dados
Sistemas de Informação
3º período
Aulas 07 e 08 – 29/03/2023
Prof. Anderson L. A. Vilaça
78
79
1
Algoritmos e Estruturas de Dados - AED
Alocação de memória: Estática x Dinâmica
• A Tabela apresenta uma breve descrição das diferenças entre a alocação estática e a alocação
dinâmica.
80
81
2
Algoritmos e Estruturas de Dados - AED
Alocação de memória: Estática x Dinâmica
• Nesse tipo de alocação os dados não precisam estar necessariamente organizados
sequencialmente na memória do computador.
• Além disso, a quantidade total de memória utilizada pelo programa não precisa ser
previamente conhecida.
• O acesso aos dados agora é feito por ponteiros que apontam para os blocos de memória
alocados, e não mais por variáveis.
82
83
3
Algoritmos e Estruturas de Dados - AED
Alocação de memória: Estática x Dinâmica
84
85
4
Algoritmos e Estruturas de Dados - AED
Alocação de memória: Estática x Dinâmica
• Pegando o programa anterior (determinar o maior e menor elemento de um vetor)
e tornando ele mais flexível ainda, com alocação dinâmica de memória. Nesta
versão observaremos os endereços reservados no STACK (pilha) e no HEAP.
86
sizeof() retorna a
quantidade de bytes
que uma variável ou
tipo de dados usa.
87
5
Algoritmos e Estruturas de Dados - AED
Alocação de memória: Estática x Dinâmica
• Pegando o programa anterior (determinar o maior e menor elemento de um vetor)
e tornando ele mais flexível ainda, com alocação dinâmica de memória. Nesta
versão observaremos os endereços reservados no STACK (pilha) e no HEAP.
O STACK ocupa a região de
memória inciada por 0x7FFF...
88
Usamos a variável
pV++ para fazer os
incrementos nos
endereços.
89
6
Algoritmos e Estruturas de Dados - AED
Alocação de memória: Estática x Dinâmica
• Pegando o programa anterior (determinar o maior e menor elemento de um vetor)
e tornando ele mais flexível ainda, com alocação dinâmica de memória. Nesta
versão observaremos os endereços reservados no STACK (pilha) e no HEAP.
90
91
7
Algoritmos e Estruturas de Dados - AED
Alocação de memória: Estática x Dinâmica
• Pegando o programa anterior (determinar o maior e menor elemento de um vetor)
e tornando ele mais flexível ainda, com alocação dinâmica de memória. Nesta
versão observaremos os endereços reservados no STACK (pilha) e no HEAP.
92
93
8
Algoritmos e Estruturas de Dados - AED
Estrutura de dados heterogêneas – uso do comando struct em C/C++
• O exemplo a seguir, ilustra a utilização de struct.
struct DADOS_ALUNO
{
int CodAluno;
char Nome[100];
int Turma;
};
• Basicamente todos os tipos de variáveis em C++ podem ser utilizadas como membros de uma
estrutura. Os membros mais comuns são: int, char, float etc.
94
struct DADOS_ALUNO
{
int CodAluno;
char Nome[100];
int Turma;
};
• Basicamente todos os tipos de variáveis em C++ podem ser utilizadas como membros de uma
estrutura. Os membros mais comuns são: int, char, float etc.
95
9
Algoritmos e Estruturas de Dados - AED
Estrutura de dados heterogêneas – uso do comando struct em C/C++
• No exemplo a seguir, escrito apenas para o C++, a estrutura heterogênea foi declarada
localmente dentro da função main().
• Isto implica que a estrutura somente poderá ser utilizada dentro da função main().
#include <iostream>
using namespace std;
void main()
{
struct DADOS_ALUNO
{
int CodAluno;
char Nome[100];
int Turma;
};
96
AlunoA.CodAluno = 10;
strcpy(AlunoA.Nome, "Gabriela");
AlunoA.Turma = 250;
97
10
Algoritmos e Estruturas de Dados - AED
Uso do comando typedef para definir novos tipos de dados
• O comando typedef permite que na linguagem C/C++ sejam definidos novos tipos de dados
pelo usuário além dos tipos básicos (char, int, float, etc...) já existentes. A sua sintaxe é:
98
99
11
Algoritmos e Estruturas de Dados - AED
Incrementando um pouco mais o nosso programa....
100
101
12
Algoritmos e Estruturas de Dados - AED
Incrementando um pouco mais o nosso programa....
102
13