Sei sulla pagina 1di 3

Estrutura de dados homogenea vetores e matrizes

As estruturas de dados homogeneas so estruturas de dados lineares e estaticas, isto , so


compostas por um numero finito de elementos de um determinado tipo de dado. O acesso dos
elementos feito pelo seu indice no vetor, ou indices no vetor, ou indices na matriz.
Porem a remoo de elementos pode deixar ndices "vazios" no meio do vetor, nesse caso
necessario reorganizar todos os elementos depois do elemento removido.
O indice inteiro e positivo. Tem acesso rpido aos seus elementos, mas a limitao de ter o
tamanho fixo.

#Estrutura de dados heterogenea ( REGISTRO) um grupo de variaveis, no qual cada um
possui um identificador proprio e determinado tipo de dados, conhecidos como membros da
estrutura.

struct nomeReg {
int codprod;
char desc[20];
float preco;
};

struct nomeReg Reg1,Reg2;
Reg1 e Reg2 so as variaveis declaradas no tipo de registro

Na linguagem C, uma estrutura s pode ser passada como parametro para uma funo,
atraves de seu endereo, fazendo uma referencia a ela atraves de um ponteiro (passagem de
parametro por referencia). A Notao p -> x (p que aponta para x) equivale a * p.x, e usada
para fazer referencia a um membro da estrutura.

# Alocao dinamica da memoria a maneira de solicitar e usar memoria durante a execuo
de um programa. temos 2 grupos distintos:

- Alocao esttica: Os dados tem tamanho fixo e estao organizados de forma sequencial na
memoria do computador. exemplo

variaveis globais, vetores, e matrizes.

- Alocao dinamica: os dados no precisam ter um tamanho fixo pois podemos definir cada
dados a memoria que desejamos usar. sendo assim vamos abrir espaos de memoria (blocos )
que nao precisa estar organizados de maneira sequencial, podendo estar distribuidos da forma
esporsa na memoria.

Na alocao dinamica vamos pedir para alocar / liberar blocos esparsos na memoria, usamos
as variaveis tipo ponteiro, que so indicadores de endereo de memoria.

#ponteiro e alocao dinamica de memoria ponteiros contem endereos de memoria e podem
usar rotinas de alocao de memoria, como forma de armazenar dados. Operadores dos
ponteiros (& e *).

O operador &, devolve o endereo na memoria de seu operando.
O operador *, devolve o valor da variavel localizada no endereo que o segue.

O ponteiro permitem que funes modifiquem seus argumentos de chamada.
O uso mais proveitoso de ponteiros enderear objetos dinamicos, que so alocados em
tempo de execuo.

SINTAXE:
ponteiro = (tipo_var) malloc
((qtde) * sizeof(tipo_var))
nao precisa usar o qtde


ponteiro: o ponteiro que ter espao disponivel alocado por esse comando
tipo_var: indica se o ponteiro do tipo inteiro (int) real (float) ou caracter (char), etc
malloc: uma funo, definida em stdlib.h, que alocar espao na memoria
Quando
malloc no puder encontrar memoria suficiente, ela retornara um ponteiro nulo, usuamente
igual a 0 (zero). Deve-se verificar se uma chamada malloc foi bem sucedida, tipicamente e
usando o comando if para verificar se um comando resultante nulo.

qtde: o total de elementos a ser guardado na memoria. Quando especificados a quantidade
o ponteiro pode ser trabalhado como vetor.

SizeOf(tipo_var) ira especificar o tamanho em bytes que um elemento da variavel ocupara.

sizeof retorna o tamanho em bytes que um elemento da variavel ocupara

qtde*sizeof(tipo_var) ira indicar para a funo malloc a quantidade de memoria a ser alocadas.
esta operao pega o espao ocupado por uma unidade de variavel e multiplica pela
quantidade necessaria

apos a utilizao do ponteiro importante liberar a memoria dinamica

free(nome_ponteiro)


lista - sequencial
pilha - sequencial
fila - sequencial
todos sao exibidos da mesma forma, e a forma como eles so removidos o que os definem

pilha sai da posio 0 para 9

Potrebbero piacerti anche