On Sun, 10 Aug 2014 14:26:27 +0000 seany via Digitalmars-d-learn <[email protected]> wrote:
> I am having difficulty in imagining how to send D arrays to a C
> function.
do something like this:
=== C SIDE ===
void c_array_processing (int *items, size_t item_count) {
// use items pointer as normal C-like array pointer
...
}
=== D SIDE ===
extern(C) void c_array_processing (int* items, size_t item_count);
int[] arr;
...
arr ~= 42;
...
c_array_processing(arr.ptr, arr.length);
> PS: is there a built in size operator for arrays in D?
if you want to get size of all array items, do this:
size_t dataSize = arr[0].sizeof*arr[0].length;
if you want to get the size of the internal array structure... just
don't do that. it's better to not use internal compiler and runtime
structures.
signature.asc
Description: PGP signature
