AGB  ·  Datenschutz  ·  Impressum  







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

template verkettete liste

Ein Thema von JnZn558 · begonnen am 6. Mär 2010 · letzter Beitrag vom 7. Mär 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#11

Re: template verkettete liste

  Alt 7. Mär 2010, 11:30
Du musst himi wahrscheinlich nicht die Funktionsweise eines GCs erklären. Eher deine Idee, dass es sowas unter Delphi.Win32 gäbe .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
JnZn558

Registriert seit: 22. Aug 2004
98 Beiträge
 
#12

Re: template verkettete liste

  Alt 7. Mär 2010, 12:27
Zitat von ghost007:
danke fuer deine tips, himitsu und Khabarakh haben beide wohl recht, bei delphi win32 sehe ich auch nicht ein, dass da kein GC gaebe. schliesslich kein DotNet

im moment sieht mein code folgendes aus

Delphi-Quellcode:
PList = ^vList;
  vList = record
    nCount : Cardinal; // number of datas
    pItem : Pointer; // data pointer
    pNextItem : PList; // next item
    pLastItem : PList; // previous item
  end;

  vArray = class
    m_list : vList;

  public
    constructor Create(pValue: Pointer);
    destructor Destroy; override;
  end;

  constructor ZArray.Create(pValue: Pointer);
  var
    p : Pointer;
  begin
    if Assigned(pValue) then
    begin
      with Self do
      begin
        m_list.nCount := 1;
        New(m_list.pItem);
        m_list.pItem^ := pValue^; // hier soll der fehler sein
        m_list.pNextItem := nil;
        m_list.pLastItem := nil;
      end
    end;
  end;
folgende fehler spuckt der aus
Zitat:
E2015 Operator not applicable to this operand type
oh Sorry, mir war ein tippfehler unterlaufen.
Peace on the world
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#13

Re: template verkettete liste

  Alt 7. Mär 2010, 13:14
Wo den?

Also in welcher Zeile?
Lars
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: template verkettete liste

  Alt 7. Mär 2010, 13:24
Ich steig da nicht mehr durch: PList, ZList, vList, m_list, was ist was? Mir scheint, da ist die Zuordnung durcheinander geraten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#15

Re: template verkettete liste

  Alt 7. Mär 2010, 13:31
Zitat von DeddyH:
Ich steig da nicht mehr durch: PList, ZList, vList, m_list, was ist was?
dito, aber es muss auf jeden Fall
m_list.pItem := pValue; heißen.
Und ein with self bewirkt nicht wirklich viel .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
JnZn558

Registriert seit: 22. Aug 2004
98 Beiträge
 
#16

Re: template verkettete liste

  Alt 7. Mär 2010, 13:49
ein tippfehler war mir unterlaufen, ich hab es nun geaendert.

Delphi-Quellcode:
PList = ^vList;
  vList = record
    nCount : Cardinal; // number of datas
    pItem : Pointer; // data pointer
    pNextItem : PList; // next item
    pLastItem : PList; // previous item
  end;

  vArray = class
    m_list : vList;

  public
    constructor Create(pValue: Pointer);
    destructor Destroy; override;
  end;

  constructor ZArray.Create(pValue: Pointer);
  var
    p : Pointer;
  begin
    if Assigned(pValue) then
    begin
      with Self do
      begin
        m_list.nCount := 1;
        New(m_list.pItem);
        m_list.pItem^ := pValue^; // hier soll der fehler sein
        m_list.pNextItem := nil;
        m_list.pLastItem := nil;
      end
    end;
  end;
Zitat von Khabarakh:
Zitat von DeddyH:
Ich steig da nicht mehr durch: PList, ZList, vList, m_list, was ist was?
dito, aber es muss auf jeden Fall
m_list.pItem := pValue; heißen.
Und ein with self bewirkt nicht wirklich viel .
ich moechte den wert kopieren, nicht der adresse von pValue, denn wenn die pValue im fall auf NIL gesetzt wird, dann schmiert pItem auch ab, is doch so nicht?
Peace on the world
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#17

Re: template verkettete liste

  Alt 7. Mär 2010, 17:21
Zitat von JnZn558:
ein tippfehler war mir unterlaufen, ich hab es nun geaendert.
Für Records und Klassen aber bitte einen T-Präfix benutzen. Und für den Rest keine ungarische Notation .

Zitat:
ich moechte den wert kopieren, nicht der adresse von pValue
Damit kopierst du die Adresse in pValue. Den referenzierten Wert kannst du schlecht kopieren, wenn du nicht einmal seine Größe kennst.
Zitat:
denn wenn die pValue im fall auf NIL gesetzt wird, dann schmiert pItem auch ab, is doch so nicht?
Nach dem Aufruf? Nein, es ist eben der Wert von (= die Adresse in) pValue.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
JnZn558

Registriert seit: 22. Aug 2004
98 Beiträge
 
#18

Re: template verkettete liste

  Alt 7. Mär 2010, 23:30
Zitat von Khabarakh:
Zitat von JnZn558:
ein tippfehler war mir unterlaufen, ich hab es nun geaendert.
Für Records und Klassen aber bitte einen T-Präfix benutzen. Und für den Rest keine ungarische Notation .

Zitat:
ich moechte den wert kopieren, nicht der adresse von pValue
Damit kopierst du die Adresse in pValue. Den referenzierten Wert kannst du schlecht kopieren, wenn du nicht einmal seine Größe kennst.
Zitat:
denn wenn die pValue im fall auf NIL gesetzt wird, dann schmiert pItem auch ab, is doch so nicht?
Nach dem Aufruf? Nein, es ist eben der Wert von (= die Adresse in) pValue.
danke sehr fuer deine hilfe, da der wert nicht schlecht kopieren laesst, is dann nix mehr zu machen. hehe
ich muss damit wohl leben, was delphi zu bieten hat
Peace on the world
  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 22: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