[fpc-pascal] Problems with assigning pointers
Mattias Gaertner
nc-gaertnma at netcologne.de
Tue Apr 10 19:03:40 CEST 2012
On Tue, 10 Apr 2012 18:08:04 +0200
dhkblaszyk at zeelandnet.nl wrote:
>
>
> I have some issues when assigning a pointer to a pointer variable.
> Consider this:
>
> TVertex = record
> x: double;
> y: double;
> end;
>
> PVertex = ^TVertex;
>
> TEdge = record
> v1: PVertex;
> v2: PVertex;
> end;
>
>
> I have assigned a value to a vertex variable. In my code I have an
> array of TEdge. When I try to assign a vertex to the edge element in the
> array the x value suddenly is changed to 3e-308 (or something similar).
> I don't understand why, perhaps someone could help me to figure this
> out.The code I'm using to assign the value is shown below. To my
> knowledge assigning a pointer this way is perfectly legal not?
>
>
> procedure add_edge(v1, v2: PVertex);
> begin
> inc(edge_count);
>
> SetLength(edge_list, edge_count);
>
> edge_list[edge_count - 1].v1 := v1;
> //
Code looks ok. The bug is probably in the code you didn't send. Maybe
your vertices are on the stack?
Mattias
More information about the fpc-pascal
mailing list