AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FreeMem und Pointer

Ein Thema von oXmoX · begonnen am 8. Jun 2005 · letzter Beitrag vom 8. Jun 2005
Antwort Antwort
Seite 2 von 2     12   
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: FreeMem und Pointer

  Alt 8. Jun 2005, 12:42
Hallo Jan,

du solltest Non-Integer-Values nicht auf Gleichheit testen, ein epsilon-Test ist da sicherer:
Delphi-Quellcode:
var
  epsilon: Double = 0.001;

procedure TForm1.TestClick(Sender: TObject);
var
  TestVector: PDouble;
  allocSize: integer;
begin
  allocSize := 20 * SizeOf(Double);
  GetMem(TestVector, allocSize);

  SetElement(TestVector, 10, 0.1);
  assert(Abs(GetElement(TestVector, 10) - 0.1) < epsilon);

  FreeMem(TestVector, allocSize);
end;
Und die folgende Zeile kannst du dir bei Call-By-Value schenken:

Dec(Vector, Index); Grüße vom marabu
  Mit Zitat antworten Zitat
oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#12

Re: FreeMem und Pointer

  Alt 8. Jun 2005, 12:42
Zitat von himitsu:
Das/Warum SizeOf(PDouble) ja 4 ist, ist ja geklärt.

Ich wollte nur noch sagen, dass man es auch anders hätte lösen können ^^

SizeOf(TestVector^) das ^ macht ja aus dem Zeige wieder den Datentyp, was
SizeOf(PDouble^) und damit natürlich auch
SizeOf(Double) entspricht, allerdings hätte dieses auch mal den Vorteil, wenn der Typ von TestVector geändert würde, denn dann würde das Ergebnis von SizeOf immernoch stimmen ^^
..ist mir schon klar. Trotzdem vielen Dank!

Hab grad neu Lösung gefunden (bzw. gefunden bekommen in nem anderen Forum). Wenn man statt es expliziten Wertes 0.1 eine Variable (Type Double) nimmt geht's nämlich auf einmal. 0.1 ist nämlich implizit Single.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz