关于#C语言#的问题,如何解决?

C语言指针的一个问题
代码如下

#include 
void copy_arr(double target1[], double source[], int num1);
void copy_ptr(double *target2, double *source, int num2);
void copy_ptrs(double*target3, double* source, double*end);
void print(double arr[]);
int main()
{
    double source[5] = { 1.1,2.2,3.3,4.4,5.5 };
    double target1[5];
    double target2[5];
    double target3[5]; 
    copy_arr(target1,source,5);
    copy_ptr(target2, source, 5);
    copy_ptrs(target3, source, source + 5);
    print(target1);
    print(target2);
    print(target3);
    return 0;
}
void copy_arr(double target1[], const double source[], int num1)
{
    for (int i = 0; i < num1; i++)
    {
        target1[i] = source[i];
    }
}
void copy_ptr(double* target2, const double* source, int num2)
{
    for (int i = 0; i < num2; i++)
    {
        *(target2 + i) = *(source + i);
    }
}
void copy_ptrs(double* target3, const double *source, const double*end)
{
    for (int i = 0; i < end-source; i++)
    {
        *(target3 + i) = *(source + i);
    }
}
void print(double arr[])
{
    for (int i = 0; i < 5; i++)
    {
        printf("%g", arr[i]);
    }
}

运行后出现一个里面什么都没有的黑色窗口,然后过一会儿就关闭了

img

声明和实现的形参不一致, 多了const