GARANTIR DESCONTO

Fórum Ponteiros - Arrays, variaveis #455099

12/09/2013

0

Boa Tarde pessoal

Preciso de um help de vcs com os ponteiros, pois tenho uma variável qualquer q é um array e quero setar no ponteiro. Só q não entendi quando devo usar o ^ou @ e como seta a inicialização e o preenchimento dos mesmos. Podem em ajudar ou indicar um material q contenha as respectivas informações com mais clareza. Valeu.
var
variavel : array [0..511] of Byte;
ponteiros : array [0..511] of ^Byte;
begin
bla bla
end;



Alessandro Yamasaki

Alessandro Yamasaki

Responder

Posts

12/09/2013

Marco Salles


Boa Tarde pessoal

Preciso de um help de vcs com os ponteiros, pois tenho uma variável qualquer q é um array e quero setar no ponteiro. Só q não entendi quando devo usar o ^ou @ e como seta a inicialização e o preenchimento dos mesmos. Podem em ajudar ou indicar um material q contenha as respectivas informações com mais clareza. Valeu.
var
variavel : array [0..511] of Byte;
ponteiros : array [0..511] of ^Byte;
begin
bla bla
end;

hummmm

o @ utilizado como endereço
o ^ utilizado como Conteúdo porém pode ser utilizado como Ponteiro

Veja um definição

Pinteger é um Ponteiro para Integer , esta definido como

PInteger: : ^ Integer ; // Ponteiro para Integer;

Um exemplo

var
i:PInteger;
x:Integer;
begin
x:=5;  // conteudo de x igual a 5;
i:=@x ; // endereço de x;
i^:=4 ; //atribuição do conteudo 4 ao endereço referenciado pelo Ponteiro;
Showmessage(inttostr(X)) ;  


segundo exemplo .... Arrays

procedure TForm4.Button2Click(Sender: TObject);
var
  A: array[0..2] of Char;
  P: PChar; // PChar é ponteiro para Char
begin
  P := @A[0]; // pega ponteiro para o primeiro elemento no array
  P^ := 'O'; // mesmo que A[0] := ´O´
  P := P + 1; // avança para o próximo caractere no array
  P^ := 'i'; // mesmo que A[1] := ´i´
  P := P + 1; // avança para o próximo caractere no array
  P^ := '0'; // mesmo que A[2] := 0; isto termina a string
  Caption := A;
end;


Terceiro exemplo ... PONTEIRO PARA AARAYS

procedure TForm4.Button3Click(Sender: TObject);
type
  T = array[0..2] of Char;
var
  A:T;
  PA:^T; // Ponteiro para o Tipo T;
  i: Integer;
begin
  PA:=@A ;  //pega o ponteiro para o Array definido pela Variavel A
 PA^[0]:='O';  // atribuição do conteudo '0' ao endereço referenciado pelo Ponteiro;  PA^[0]:
 PA^[1]:='i';    // atribuição do conteudo 'i' ao endereço referenciado pelo Ponteiro;  PA^[1]:
 PA^[2]:='O';   // atribuição do conteudo 'O' ao endereço referenciado pelo Ponteiro;  PA^[2]:
 for i := Low(A) to High(A) do
   Showmessage(A[i]);  //  mostrando o conteudo de A[i]
end;



[]sds






Responder

Gostei + 0

13/09/2013

Alessandro Yamasaki

Grato pela dicas Marco. Vamos vê aonde estou errando e tentar implementar corretamente.

Abraços
Responder

Gostei + 0

13/09/2013

Alessandro Yamasaki

Marco ou alguem no forum, nao sei se vc pode me ajudar.

Preciso carregar um arquivo mp3 ou wav no buffer ou na memoria ou no ponteiro para utiliza-lo numa respectiva funcao q passo para uma dll. Qual a melhor solução e como passo este som no ponteiro?

Grato
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar