/* File : example.i */ %module example %{ extern void add(int *, int *, int *); extern void sub(int *, int *, int *); extern int divide(int, int, int *); %} /** This example illustrates a couple of different techniques for manipulating C pointers */ /* First we'll use the pointer library */ /*! function add \param x some int x \param y some int y \param result some result */ extern void add(int *x, int *y, int *result); %include cpointer.i %pointer_functions(int, intp); /* Next we'll use some typemaps */ %include typemaps.i extern void sub(int *INPUT, int *INPUT, int *OUTPUT); /* Next we'll use typemaps and the %apply directive */ %apply int *OUTPUT { int *r }; extern int divide(int n, int d, int *r);