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的内容吗?如果是的话,为什么会返回?我真的不明白......提前谢谢.
它返回一个新分配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写入指定位置.