Tools to compile pointers to arrays of static size
you can declare an array of fixed size and then access it using a pointer,
take for instance you can declare

float a[10];


and access it as

*(a+index)= &lt;value&gt;;


*a representing a[0].

for your sum function, you can leave the following function intact

`    void sum(float *a, int size, float *out) {
        int i;
        for (i=0;i&lt;size;i++)
            *out += a+1;
    }


and make changes in the calling program
preprocessor directive

#define size &lt;yourchoice&gt;


variable declaration

float a[size];
float out[size];


function call 

sum((float*)a,int size,(float*)out);


m not sure what your function is trying to achieve block addition or sum of consecutive floats...but hope this helps