marseem
1112 palavras
5 páginas
Estruturas de DadosProfa. Juliana Pinheiro Campos
ESTRUTURAS DE DADOS
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 de 40 bytes, pois cada int ocupa 4 bytes.
ESTRUTURAS DE DADOS
Vetores
O acesso a cada elemento é feito por meio de uma indexação.
A indexação de um vetor em C varia de 0 a n-1, onde n é a dimensão do vetor; p[0] → Acessa o primeiro elemento do vetor p; p[1] → Acessa o segundo elemento do vetor p;
...
p[9] → Acessa o último elemento do vetor p; v[10] → ERRO!!! (invasão de memória)
Vetores
ESTRUTURAS DE DADOS
Existe uma forte associação entre vetores e ponteiros. int p[10] → o símbolo p (que representa o vetor) é uma constante que representa seu endereço inicial. p sem índice aponta para o primeiro elemento do vetor.
E03
1 p E03
0
E04
2
E05
...
9
ESTRUTURAS DE DADOS
Ponteiros
C suporta aritmética de ponteiros desde que o valor do ponteiro resultante aponte para dentro da área reservada para o vetor.
Operações válidas: adição e subtração. int a = 5; int *p = &a; p++; Como p é um ponteiro para inteiro, p++ ou p + 1 representa um ponteiro para o próximo inteiro na memória (valor de p incrementado em 4 bytes)
ESTRUTURAS DE DADOS
Passagem de vetores para funções
Passar um vetor para uma função consiste em passar o endereço da primeira posição do vetor.
A função chamada deve ter um parâmetro do tipo ponteiro para armazenar esse valor.
Exemplo: 8) cálculo da média de 10 valores.
OBS: Como é passado o endereço do primeiro elemento do vetor, os valores dos elementos podem ser alterados dentro da função.
ESTRUTURAS DE DADOS
Vetores
Limitação de vetor: ter que dimensioná-lo na declaração, ou seja, durante a codificação.
Solução: Alocação dinâmica.
.
ESTRUTURAS DE DADOS
Alocação dinâmica de memória
Requisitar ao