I would like to create a new array of values, and I am not sure how to do this efficiently. Since to create the new array I have to call a function, passing the old array as a parameter. Right now my code looks something like:
float *newMeasurements1;
newMeasurements1 = malloc(sizeof(calcNewArray(oldArray)));
newMeasurements1 = calcNewArray(oldArray);
float *calcNewArray(float *oldArray) {
    float *newArray;
    int new_size = sizeof(oldArray) - outliers;
    newArray = malloc((new_size) * sizeof(float));
    for (i = 0; i < new_size; i++) {
        newArray[i] = oldArray[i];
    }
    return newArray;
}
I am not sure if this is the correct way to do this because I have to call the function once to know the size of the new array. And then call the function a second time to actually assign the array to the allocated memory. How best can I do this?
 
    