
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!