At 13:05 5-5-2005, you wrote:

On 05 May 2005, at 13:06, Michael Van Canneyt wrote:

Dynamic arrays are an internal type of pascal. C doesn't know dynamic
arrays. That it works with delphi is pure luck.

Sorry, but pascal dynamic arrays are just pointers.

Totally wrong. They are a reference counted type.

Yes, but aren't they "just" C-style arrays (i.e. pointers) in the same way that ansistrings are "just" pchars?

It is also calling convention related how C expects arrays to be pushed. From the example:


// extern "C" __cdecl __declspec(dllexport) int get_array(double a[], double b[], int size, double val);

Here the array is expected on the stack on some i386 targets. Using 'double *a' is less ambigious, because it then always needs to be a pointer.


Peter


_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to