marseem

1112 palavras 5 páginas
Estruturas de Dados

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

Relacionados