这个C函数有什么作用?

Ash*_*eyT -3 c function

double *f(int n, double v)
{
  double *a, *p;
  a = malloc(n * sizeof(double));
  if (a != NULL)
    for (p = a; p < a + n; p++)
      *p = v;
  return a;
}
Run Code Online (Sandbox Code Playgroud)

你能解释一下这个功能需要什么吗?它复制了n中的v的内容吗?如果是的话,为什么会返回?我真的不明白......提前谢谢.

fge*_*fge 6

它返回一个新分配double的大小数组,n其中包含值v,或者NULL分配失败.

这个循环:

for (p = a; p < a + n; p++)
    *p = v;
Run Code Online (Sandbox Code Playgroud)

使用指针算法.作为p指向a的指针double,递增它将指向下一个要写的双.*p = v将double写入指定位置.