Estrutura de Dados -...

33
Estrutura de Dados Introdu¸ ao e Aloca¸ ao de Mem´ oria Vilson Heck Junior Instituto Federal de Santa Catarina 2015

Transcript of Estrutura de Dados -...

Page 1: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Estrutura de DadosIntroducao e Alocacao de Memoria

Vilson Heck Junior

Instituto Federal de Santa Catarina

2015

Page 2: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Sumario

1 Sumario

2 Introducao

3 Dados Compostos HeterogeneosO ProblemaA SolucaoObjetos em JavaExercıcio

4 Alocacao de MemoriaAlocacao Dinamica de Memoria

5 Referencias Bibliograficas

2 / 22

Page 3: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Sumario

1 Sumario

2 Introducao

3 Dados Compostos HeterogeneosO ProblemaA SolucaoObjetos em JavaExercıcio

4 Alocacao de MemoriaAlocacao Dinamica de Memoria

5 Referencias Bibliograficas

3 / 22

Page 4: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Introducao as Estruturas de Dados

Computacao x Dados

Por definicao um computador e uma maquina capaz de trabalharcom uma grande quantidade de informacoes em um temporeduzido. Para que esse trabalho seja realizado as informacoesenvolvidas devem ser organizadas, para entao poderem sermanipuladas e utilizadas de forma conveniente.

Objetivo das Estruturas

O objetivo maior das estruturas de dados e prover diferentesformas para organizar as informacoes utilizadas por um programade computador. Esse objetivo e circundado por tecnicas demanipulacao aplicadas as informacoes organizadas, de forma autiliza-las para a resolucao de problemas diversos.

(Alexandre Savaris, 2006)4 / 22

Page 5: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Representacao de Dados

Um computador e um dispositivo eletronico e, por isso, ecomposto por circuitos eletricos. A ausencia ou presenca de tensaoeletrica, em cada circuito, representa um valor para de bit: 0 (naausencia de tensao) ou 1 (na presenca de tensao).

O bit, por sua vez, e o menor dado que pode ser representado porum computador e, quando arranjado com outros bit, compoembytes, ou ainda conjuntos de bytes, que representam dados. Estearranjo e determinado por uma estrutura, entao: Estrutura deDados.

5 / 22

Page 6: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Representacao de Dados

Um computador e um dispositivo eletronico e, por isso, ecomposto por circuitos eletricos. A ausencia ou presenca de tensaoeletrica, em cada circuito, representa um valor para de bit: 0 (naausencia de tensao) ou 1 (na presenca de tensao).

O bit, por sua vez, e o menor dado que pode ser representado porum computador e, quando arranjado com outros bit, compoembytes, ou ainda conjuntos de bytes, que representam dados. Estearranjo e determinado por uma estrutura, entao: Estrutura deDados.

5 / 22

Page 7: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Variaveis

As estruturas de dados mais simples sao as variaveis. Cada variavelarmazena um unico dado, referente a qualquer coisas do tipo dedado determinado. Mas e se precisarmos armazenar conjuntos dedados que sao de tipos diferentes, mas que sao relacionados amesma coisa?

Toda variavel possuı um tipo de dado primitivo, que determina asua estrutura. Esta estrutura limita o dado armazenado quanto aoseu valor. Por exemplo, um tipo de dado numerico nao e adequadopara armazenar texto, ou vice-versa. Ainda, um mesmo tipo dedado numerico e capaz de armazenar valores numericos exclusivosde um determinado intervalo.

6 / 22

Page 8: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Variaveis

As estruturas de dados mais simples sao as variaveis. Cada variavelarmazena um unico dado, referente a qualquer coisas do tipo dedado determinado. Mas e se precisarmos armazenar conjuntos dedados que sao de tipos diferentes, mas que sao relacionados amesma coisa?

Toda variavel possuı um tipo de dado primitivo, que determina asua estrutura. Esta estrutura limita o dado armazenado quanto aoseu valor. Por exemplo, um tipo de dado numerico nao e adequadopara armazenar texto, ou vice-versa. Ainda, um mesmo tipo dedado numerico e capaz de armazenar valores numericos exclusivosde um determinado intervalo.

6 / 22

Page 9: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Sumario

1 Sumario

2 Introducao

3 Dados Compostos HeterogeneosO ProblemaA SolucaoObjetos em JavaExercıcio

4 Alocacao de MemoriaAlocacao Dinamica de Memoria

5 Referencias Bibliograficas

7 / 22

Page 10: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Dados Compostos Heterogeneos

Muitas Variaveis

Se pensarmos em uma pessoa, ela pode ser descrita com diversosdados, por exemplo: Nome, Idade, Endereco, CPF, ... Entao,utilizando variaveis, precisarıamos declarar diversas variaveis paracada pessoa que gostarıamos de armazenar, obtendo um enormenumero de variaveis. Uma forma de resolver esta multipla alocacaode variaveis e chamado de Dados Compostos Heterogeneos,Registros ou, ainda, Estruturas.

Dados Compostos Heterogeneos

Estruturar e/ou Agrupar, de forma organizada, os dados que saorelacionados a mesma tarefa ou elemento.

8 / 22

Page 11: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Dados Compostos Heterogeneos

Muitas Variaveis

Se pensarmos em uma pessoa, ela pode ser descrita com diversosdados, por exemplo: Nome, Idade, Endereco, CPF, ... Entao,utilizando variaveis, precisarıamos declarar diversas variaveis paracada pessoa que gostarıamos de armazenar, obtendo um enormenumero de variaveis. Uma forma de resolver esta multipla alocacaode variaveis e chamado de Dados Compostos Heterogeneos,Registros ou, ainda, Estruturas.

Dados Compostos Heterogeneos

Estruturar e/ou Agrupar, de forma organizada, os dados que saorelacionados a mesma tarefa ou elemento.

8 / 22

Page 12: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

O Problema: Numerosas Variaveis

9 / 22

Page 13: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

A Solucao: Dados Compostos Heterogeneos - Objetos

10 / 22

Page 14: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Criando uma Classe class em Java

Como visto em slide anterior, uma class pode ser composta devarios campos de diferentes tipos de dados;

A criacao desta class e feita em novo arquivo, dentro de umpackage e fora de qualquer outra class;

Apos a declaracao class, devemos colocar um bloco { };

Dentro do bloco { }, devemos declarar os elementos que iraocompor a estrutura. A declaracao de cada elemento deve serantecedida pela palavra: public.

11 / 22

Page 15: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Criando uma Classe class em Java

Como visto em slide anterior, uma class pode ser composta devarios campos de diferentes tipos de dados;

A criacao desta class e feita em novo arquivo, dentro de umpackage e fora de qualquer outra class;

Apos a declaracao class, devemos colocar um bloco { };

Dentro do bloco { }, devemos declarar os elementos que iraocompor a estrutura. A declaracao de cada elemento deve serantecedida pela palavra: public.

11 / 22

Page 16: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Criando uma Classe class em Java

Como visto em slide anterior, uma class pode ser composta devarios campos de diferentes tipos de dados;

A criacao desta class e feita em novo arquivo, dentro de umpackage e fora de qualquer outra class;

Apos a declaracao class, devemos colocar um bloco { };

Dentro do bloco { }, devemos declarar os elementos que iraocompor a estrutura. A declaracao de cada elemento deve serantecedida pela palavra: public.

11 / 22

Page 17: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Criando uma Classe class em Java

Como visto em slide anterior, uma class pode ser composta devarios campos de diferentes tipos de dados;

A criacao desta class e feita em novo arquivo, dentro de umpackage e fora de qualquer outra class;

Apos a declaracao class, devemos colocar um bloco { };

Dentro do bloco { }, devemos declarar os elementos que iraocompor a estrutura. A declaracao de cada elemento deve serantecedida pela palavra: public.

11 / 22

Page 18: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

1 package MeuPrograma;

2 class Pessoa { // Declarac~ao da classe Pessoa

3 public String Nome; // Atributo Nome

4 public int Idade; // Atributo Idade

5 public String Endereco; // Atributo Endereco

6 public long CPF; // Atributo CPF

7 }

8 public class Programa {

9 public static void main(String [] args) {

10 Pessoa p1 = new Pessoa ();

11 p1.Nome = "Fulano de Tal";

12 p1.Idade = 20;

13 p1.Endereco = "Rua XYZ , 12";

14 p1.CPF = 1234567890;

15 }

16 }

Criacao e Inicializacao de class em Java

Page 19: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Aplicacao em Array

Um bom exemplo de simplificacao que obtemos ao usar a classPessoa, que criamos anteriormente, e apresentada ao utilizarmosum array para armazenar um determinado numero de objetosPessoa.

Arrays e outras Estruturas de Dados, que serao estudadas, passama ter capacidade de armazenar elementos mais complexos, assimcomo uma Pessoa, que e composta por diversos dados diferentes.

1 //Array de 10 Pessoas

2 Pessoa [] pes = new Pessoa [10];

3 pes[0] = new Pessoa ();

4 pes [0]. Nome = "Fulano de Tal";

5 pes [0]. Idade = 20;

6 pes[1] = new Pessoa ();

7 pes [1]. Nome = "Ciclano de Tal";

8 pes [1]. Idade = 51;

9 String texto = pes [0]. Nome;

10 int nro = pes [1]. Idade;

13 / 22

Page 20: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Aplicacao em Array

Um bom exemplo de simplificacao que obtemos ao usar a classPessoa, que criamos anteriormente, e apresentada ao utilizarmosum array para armazenar um determinado numero de objetosPessoa.

Arrays e outras Estruturas de Dados, que serao estudadas, passama ter capacidade de armazenar elementos mais complexos, assimcomo uma Pessoa, que e composta por diversos dados diferentes.

1 //Array de 10 Pessoas

2 Pessoa [] pes = new Pessoa [10];

3 pes[0] = new Pessoa ();

4 pes [0]. Nome = "Fulano de Tal";

5 pes [0]. Idade = 20;

6 pes[1] = new Pessoa ();

7 pes [1]. Nome = "Ciclano de Tal";

8 pes [1]. Idade = 51;

9 String texto = pes [0]. Nome;

10 int nro = pes [1]. Idade;

13 / 22

Page 21: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Exercıcio 01

Primeira Etapa

Faca um novo projeto para Console em Java;Crie uma class chamada Contato, contendo os atributos:

String Nome; long Telefone; String Email;

Segunda Etapa

Dentro da funcao main declare um array (de tamanho 10) do tipoContato; eCrie uma aplicacao com um Menu(funcional) contendo:

1 - Cadastrar Contatos

2 - Listar Contatos

3 - Sair

O Menu devera ser exibido ate a escolha da opcao Sair.

14 / 22

Page 22: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Exercıcio 01

Primeira Etapa

Faca um novo projeto para Console em Java;Crie uma class chamada Contato, contendo os atributos:

String Nome; long Telefone; String Email;

Segunda Etapa

Dentro da funcao main declare um array (de tamanho 10) do tipoContato; eCrie uma aplicacao com um Menu(funcional) contendo:

1 - Cadastrar Contatos

2 - Listar Contatos

3 - Sair

O Menu devera ser exibido ate a escolha da opcao Sair.

14 / 22

Page 23: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Sumario

1 Sumario

2 Introducao

3 Dados Compostos HeterogeneosO ProblemaA SolucaoObjetos em JavaExercıcio

4 Alocacao de MemoriaAlocacao Dinamica de Memoria

5 Referencias Bibliograficas

15 / 22

Page 24: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Alocacao de Memoria

Estatico

Ate agora, aprendemos a alocar memoria atraves da declaracao devariaveis e arrays. Vimos estrategias para resolver algunsproblemas pontuais, tais como:

Gerenciar um alto numero de variaveis (atraves de arrays);

Definir uma class para associar dados heterogeneos;

O que falta?

Mas e se precisarmos alocar memoria sob demanda?Por exemplo, imagine o exercıcio feito anteriormente, onde criamosum array para armazenar 5 Contatos. O que aconteceria no casodo usuario precisar cadastrar um sexto Contato?

16 / 22

Page 25: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Alocacao de Memoria

Estatico

Ate agora, aprendemos a alocar memoria atraves da declaracao devariaveis e arrays. Vimos estrategias para resolver algunsproblemas pontuais, tais como:

Gerenciar um alto numero de variaveis (atraves de arrays);

Definir uma class para associar dados heterogeneos;

O que falta?

Mas e se precisarmos alocar memoria sob demanda?Por exemplo, imagine o exercıcio feito anteriormente, onde criamosum array para armazenar 5 Contatos. O que aconteceria no casodo usuario precisar cadastrar um sexto Contato?

16 / 22

Page 26: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

O Comando new

Em varias situacoes nos utilizamos o comando new, geralmentesem entender qual era sua real funcao;

1 Pessoa [] pes = new Pessoa [10];

A partir de agora, devemos estudar melhor este comando, masacima de tudo, entender os conceitos que estao por tras do seufuncionamento;

Devemos lembrar que este tipo de funcao existe em todas aslinguagens de programacao, algumas vezes como mesmo nome,outras vezes com nomes diferentes, mas com a mesma aplicacao;

17 / 22

Page 27: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

O Comando new

Em varias situacoes nos utilizamos o comando new, geralmentesem entender qual era sua real funcao;

1 Pessoa [] pes = new Pessoa [10];

A partir de agora, devemos estudar melhor este comando, masacima de tudo, entender os conceitos que estao por tras do seufuncionamento;

Devemos lembrar que este tipo de funcao existe em todas aslinguagens de programacao, algumas vezes como mesmo nome,outras vezes com nomes diferentes, mas com a mesma aplicacao;

17 / 22

Page 28: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Uso do Comando new

O comando new e utilizado para alocar memoria:

1 int[] pes = new int [10];

No exemplo acima, solicitamos ao Sistema Operacional que de aonosso programa, espaco suficiente para armazenar 10 numerosinteiros, ou seja: 32bits× 10 = 40bytes.

Antes de armazenar qualquer dado, precisamos ter um espaco namemoria devidamente alocado. Isto e feito com o comando new.As excecoes ficam por conta das Variaveis de tipos de dadosprimitivos, que dispensam o uso deste comando, mas que fazem aalocacao de espaco na memoria no momento em que asdeclaramos.Segue exemplo de uso com tamanho informado pelo usuario.

18 / 22

Page 29: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Uso do Comando new

O comando new e utilizado para alocar memoria:

1 int[] pes = new int [10];

No exemplo acima, solicitamos ao Sistema Operacional que de aonosso programa, espaco suficiente para armazenar 10 numerosinteiros, ou seja: 32bits× 10 = 40bytes.

Antes de armazenar qualquer dado, precisamos ter um espaco namemoria devidamente alocado. Isto e feito com o comando new.As excecoes ficam por conta das Variaveis de tipos de dadosprimitivos, que dispensam o uso deste comando, mas que fazem aalocacao de espaco na memoria no momento em que asdeclaramos.Segue exemplo de uso com tamanho informado pelo usuario.

18 / 22

Page 30: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

1 package MeuPrograma;

2 import java.util.Scanner;

3 public class Programa {

4 public static void main(String [] args) {

5 Scanner entrada = new Scanner(System.in);

6 int tamanho;

7 String [] nomes;

8 System.out.println("Tamanho do array: ");

9 tamanho = entrada.nextInt ();

10 nomes = new String[tamanho ];

11 for (int x = 0; x < tamanho; x++) {

12 System.out.print("Nome nro " + x + ": ");

13 nomes[x] = entrada.nextLine ();

14 }

15 System.out.println("Os " + tamanho + " nomes s~ao:");

16 for (int x = 0; x < tamanho; x++)

17 {

18 System.out.println(nomes[x]);

19 }

20 }

21 }

Usando new para alocar um array em Java

Page 31: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

A Memoria

A Memoria

Continua material sobre a memoria e a alocacao de memoria.

20 / 22

Page 32: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Sumario

1 Sumario

2 Introducao

3 Dados Compostos HeterogeneosO ProblemaA SolucaoObjetos em JavaExercıcio

4 Alocacao de MemoriaAlocacao Dinamica de Memoria

5 Referencias Bibliograficas

21 / 22

Page 33: Estrutura de Dados - docente.ifsc.edu.brdocente.ifsc.edu.br/vilson.junior/ed/02_Alocacao_de_Memoria.pdf · Estrutura de Dados Introdu˘c~ao e Aloca˘c~ao de Mem oria Vilson Heck Junior

Sumario Introducao Dados Compostos Heterogeneos Alocacao de Memoria Referencias Bibliograficas

Referencias Bibliograficas

Basicas

GOODRICH, M. T.; TAMASSIA, R.; Estruturas de dados ealgoritmos em Java. 4a Edicao. Porto Alegre, 2006

ZIVIANI, N.; Programacao de algoritmos com implementacoesem Java e C++. 1a Edicao. Cengage Learning, 2006

Complementares

CORMEN, T. H.; LEISERSON, C. E., et al.; Algoritmos -Teoria e Pratica. 4a Edicao. Sao Paulo: Elsevier, 2009

PREISS, B. R.; Estrutura de Dados e Algoritmos. Sao Paulo:Elsevier, 2001

22 / 22