question on pointers

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

question on pointers

Darius Blaszyk
I have a question on copying data to a pointer array. I'm not that into
pointers, so I can't figure out what I'm missing here. I have included
sample code below, and I get a SF on the line where I assign the data to
the pointer.
Is it perhaps that I need to assign memory to the pointer data??

Darius

procedure TForm1.Button1Click(Sender: TObject);
type
  myfloat = extended;
  pmyfloat = ^myfloat;

var
  test: array of pmyfloat;
  test2: array of myfloat;
begin
  setlength(test, 1);

  setlength(test2, 1);
  test2[0] := 3.141;

  test[0]^ := test2[0];

  ShowMessage(floattostr(test[0]^));
end;


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: question on pointers

Adriaan van Os-2
[hidden email] wrote:

> I have a question on copying data to a pointer array. I'm not that into
> pointers, so I can't figure out what I'm missing here. I have included
> sample code below, and I get a SF on the line where I assign the data
> to
> the pointer.
> Is it perhaps that I need to assign memory to the pointer data??
>
> Darius
>
> procedure TForm1.Button1Click(Sender: TObject);
> type
>   myfloat = extended;
>   pmyfloat = ^myfloat;
>
> var
>   test: array of pmyfloat;
>   test2: array of myfloat;
> begin
>   setlength(test, 1);
>
>   setlength(test2, 1);
>   test2[0] := 3.141;
>
>   test[0]^ := test2[0];

test[0]:=@test2[0];

I suggest you read a tutorial on pointers. They can be very dangerous,
so you should know what you are doing.

Regards,

Adriaan van Os

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: question on pointers

Florian Klämpfl
Adriaan van Os wrote:

> [hidden email] wrote:
>
>> I have a question on copying data to a pointer array. I'm not that into
>> pointers, so I can't figure out what I'm missing here. I have included
>> sample code below, and I get a SF on the line where I assign the data to
>> the pointer.
>> Is it perhaps that I need to assign memory to the pointer data??
>>
>> Darius
>>
>> procedure TForm1.Button1Click(Sender: TObject);
>> type
>>   myfloat = extended;
>>   pmyfloat = ^myfloat;
>>
>> var
>>   test: array of pmyfloat;
>>   test2: array of myfloat;
>> begin
>>   setlength(test, 1);
>>
>>   setlength(test2, 1);
>>   test2[0] := 3.141;
>>
>>   test[0]^ := test2[0];
>
>
> test[0]:=@test2[0];
>
> I suggest you read a tutorial on pointers. They can be very dangerous,
> so you should know what you are doing.

Even worse when combining them with dyn. arrays. As soon as you do a
setlength(test,x); all previous references to elements of test might be
invalid.

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal