Oppure

Loading
22/03/10 13:58
Ocentral
MA quando si usa ^ per i puntatori?

Grazie
aaa
22/03/10 18:57
Poggi Marco
Il simbolo ^, è appunto il simbolo per identificare i puntatori.

La sintassi per l' utilizzo è la seguente:

Per la dichiarazione (dichiaro un puntatore integer: )
 var i:^integer; {dichiarazione di un puntatore integer}
     d:integer;


Per l' utilizzo:

 ...
 i:=@d; {assegno ad i l' indirizzo di d}
 i^:=500; {memorizzo nell' area di memoria puntata da i 500}
          {notare che il simbolo ^ va dopo il nome della variabile}
 writeln('d= ',d);
 ...
Ultima modifica effettuata da Poggi Marco 22/03/10 18:59
aaa
22/03/10 21:38
In pascal a che servono i puntatori?
23/03/10 14:11
Progman-92
Ti consiglio di leggere questo capitolo della mia guida: progman92.altervista.org/guide/pascal/…
aaa
23/03/10 20:20
Poggi Marco
Postato originariamente da Giarados:

In pascal a che servono i puntatori?


I puntatori sono un potente strumento per ottimizzare l' uso della memoria.

Con essi ad esempio è possibile la gestione dinamica della RAM, e l' implementazione delle strutture dati (liste, alberi, grafi ecc.)
aaa
26/03/10 16:44
Phi
Come faccio a ridimensionare un puntatore, senza cambiarlo.

In un programma ho scritto:
(p : pchar)
(dimres : longint(è minore della dimensione attuale di P))

getmem(P,dimres);

ma poi P non contiene più il contenuto di prima.
A me interessa tagliare via l'ultima parte.
aaa
26/03/10 17:46
Poggi Marco
Non ho ben capito il tuo problema. Ad ogni modo, GetMem alloca dinamicamente un' area di memoria, e salva l' inizio sulla variabile puntatore.
Se utilizzi GetMem per riallocare un puntatore, l' area di memoria precedentemente allocata, non è più raggiungibile o riutilizzabile.

Per liberare la memoria allocata con GetMem, esiste il comando
FreeMem( <puntatore>, <dimensione> ).
aaa
30/03/10 18:19
Phi
Devo aumentare la dimensioni senza perdere la memoria
aaa