Das Stimmt, habe ich ausgebessert. Allerdings leider das gleiche Ergebnis...
Es sollte meiner Meinung nach entweder nur pMatrix
oder var TMatrix
sein. Edit: Ah nvm, habe die falsche Signatur angeschaut. Diese ist richtig?
int jaco( double x[], double *df[])
Arrays in C sind automatisch immer Zeiger. Also statt
dobule bla[]
könnte man in C auch einfach
double* bla
schreiben. Durch die spezielle Zeigerarithmetik in C darf der Array Operator auf jeden Zeiger angewendet werden und greift dabei auf den Speicher bei
Index * sizeof(ElementType)
zu. Ähnlich funktioniert ja auch Delphis
Inc
, wenn du es auf eine "typisierte Zeigervariable" z.b. PDobule anwendest. Der Zeiger würde dann automatisch um
SizeOf(Double)
erhöht werden.
Wenn du deinen eigenen Matrix Typ erstmal weglässt, funktioniert es dann folgendermaßen:
Delphi-Quellcode:
type
PDoubleArray = ^TDoubleArray;
TDoubleArray =
array[0..0]
of Double;
function Jaco(X: PDoubleArray;
var DF: PDoubleArray): Integer;
cdecl;