Einzelnen Beitrag anzeigen

rowkajjh

Registriert seit: 9. Jan 2006
38 Beiträge
 
#11

Re: Totale Pointer-Verwirrung

  Alt 9. Jan 2006, 16:28
Zitat von Der Jan:
Zitat von rowkajjh:
Eigentlich müßte doch die Konvertierung char -> double problemlos sein, oder? ...
Häh?
Ne leider nicht. Nimm "Byte". Char ist im Gegensatz zu C kein Integer-Typ. Pascal ist halt ganz schön gewöhnungsbedürftig, wenn man von C/C++ kommt. Ging mir auch so
Naja, macht aber Spaß.

Einen hab ich noch. Ich bin jetzt ziemlich weit gekommen, bloß mit dem Indexzugriff klappt es noch nicht. Ich habe mal ein Beispielprogramm erstellt:

Delphi-Quellcode:

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const width = 4;
const height = 4;
const mapsused = 4;

type TLayer = array of double; //Feld von doubles
type pTLayer = ^TLayer; //Zeiger auf eben jenes
type TMap = array of pTLayer; //Feld von Zeigern

var
  map : TMap;
  i : Integer;

   x,y : Integer;
   srcmap : pTLayer;
   srcline : pTLayer;
begin

  GetMem(map, mapsused*sizeof(TLayer));

  for i := 0 to mapsused-1 do
  begin
       GetMem(map[i], width*height*sizeof(double));
  end;

  srcmap := map[0];
  for y := 0 to height-1 do
  begin

    srcline := srcmap;
    Inc(srcline, y*width);

    for x := 0 to width-1 do
    begin
      srcline^[x] := 1.0; // <--- Hier krachts
    end;
  end;



  for i := 0 to mapsused-1 do
  begin
    FreeMem(map[i], width*height*sizeof(double));
  end;
  
  FreeMem(map, mapsused*sizeof(TLayer));

end.

Könnte mir bitte jemand den Knoten ausm Kopf nehmen? Danke!
  Mit Zitat antworten Zitat