/* File : example.i */ %module example %{ #include "example.h" %} %include "arrays_csharp.i" %apply int INPUT[] { int* sourceArray } %apply int OUTPUT[] { int* targetArray } %apply int INOUT[] { int* array1 } %apply int INOUT[] { int* array2 } %include "example.h" %clear int* sourceArray; %clear int* targetArray; %clear int* array1; %clear int* array2; // Below replicates the above array handling but this time using the pinned (fixed) array typemaps %csmethodmodifiers "public unsafe"; %apply int FIXED[] { int* sourceArray } %apply int FIXED[] { int* targetArray } %inline %{ void myArrayCopyUsingFixedArrays( int *sourceArray, int* targetArray, int nitems ) { myArrayCopy(sourceArray, targetArray, nitems); } %} %apply int FIXED[] { int* array1 } %apply int FIXED[] { int* array2 } %inline %{ void myArraySwapUsingFixedArrays( int* array1, int* array2, int nitems ) { myArraySwap(array1, array2, nitems); } %}