Uma coisa é referenciar um valor já alocado usando um ponteiro. Outra coisa é alocar um ponteiro para ser manipulado (receber e ler dados)!
O q vc fez foi apenas atribuir um endereço de memória a um ponteiro. Referenciar dados via ponteiro não é a mesma coisa que alocar um ponteiro para receber dados. Quando se referencia um dado através de um ponteiro, vc cria um outro mecanismo de alterar os dados daquela variável por meio de um ponteiro. Ou seja, usando o exemplo que vc citou, para alterar o conteúdo da variável Valor, vc pode fazer assim: Valor := 10 Ou assim: P^ := 10; // fazendo isto, vc tb alterar o conteúdo da variável Valor O uso de New(), Dispose(), GetMem() ou FreeMem() é usado para alocar dinamicamente espaço para dados que não possuem, por assim dizer, um tamanho pré-estabelecido, ou para usar de forma racional a memória para alocar espaço para o que a quantidade de dados que realmente se fizer necessária. No seu exemplo, a variável Valor possui uma alocação fixa. Se vc quisesse alocar essa memória somente quando necessário, para racionalizar o uso de memória do seu aplicativo, fazia algo assim: New(P); // Aloca o ponteiro de inteiro para ser usado P^ := 10; // O valor referenciado pelo ponteiro é alterado P^ := P^ * 2; WriteLn(P^); // Mostra o valor alterado do ponteiro Dispose(P); // Não precisa mais do ponteiro. Libera-o da memória! Sds. To: delphi-br@yahoogrupos.com.br From: andre.alme...@medicator.com.br Date: Wed, 4 Mar 2009 12:55:33 +0000 Subject: [delphi-br] Duvida sobre ponteiros Pessoal, estava fazendo uns testes com ponteiros, ai surgiu uma duvida. eu criei um ponteiro P : ^Integer; que aponta para o endereco da variável Valor : Integer; eis minha dúvida. Eu simplismente fiz P := @Valor; e funcionou. Mas queria saber se é necessario usar new(P) e dispose(P). Em alguns exemplos que eu vi usava, outros não. Abraços. _________________________________________________________________ Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger! http://www.amigosdomessenger.com.br/ [As partes desta mensagem que não continham texto foram removidas]