Приведите весь код. Ваша функция правильно складывает числа, скорее всего ошибка в другой части программы. Этот код выводит на экран "arr3 = {5.0, 7.0, 9.0}":
#include <stdio.h>
void func(double *arr1, double *arr2, double *arr3, int len) {
for (int index = 0; index < len; index++)
*(arr3 + index) = *(arr1 + index) + *(arr2 + index);
}
int main() {
double arr1[3] = {1.0, 2.0, 3.0};
double arr2[3] = {4.0, 5.0, 6.0};
double arr3[3];
func(arr1, arr2, arr3, 3);
printf("arr3 = {%f, %f, %f}", arr3[0], arr3[1], arr3[2]);
}