Possible Solution

Using the bracket notation

#include <stddef.h>
#include <stdio.h>

#define N 6

double some_array[N];

void init(size_t n, double *x)
{
    for (size_t i=0; i<n; ++i) {
        x[i] = i+1;
    }
}

double sum(size_t n, const double *x)
{
    double res = 0;

    for (size_t i=0; i<n; ++i) {
        res += x[i];
    }
    return res;
}

int main()
{
    init(N, some_array);
    printf("res = %10.3lf\n", sum(N, some_array));

    return 0;
}

Using the * notation

#include <stddef.h>
#include <stdio.h>

#define N 6

double some_array[N];

void init(size_t n, double *x)
{
    for (size_t i=0; i<n; ++i) {
        *(x+i) = i+1;
    }
}

double sum(size_t n, const double *x)
{
    double res = 0;

    for (size_t i=0; i<n; ++i) {
        res += *(x+i);
    }
    return res;
}

int main()
{
    init(N, some_array);
    printf("res = %10.3lf\n", sum(N, some_array));

    return 0;
}