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;
}
你能解释一下这个功能需要什么吗?它是否复制n中的v的内容?如果是的话,它为什么会返回一个?我真的不明白...先谢谢了。这个C函数有什么作用?
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;
}
你能解释一下这个功能需要什么吗?它是否复制n中的v的内容?如果是的话,它为什么会返回一个?我真的不明白...先谢谢了。这个C函数有什么作用?
double *f(int n, double v)
{
double *a, *p;
a = malloc(n * sizeof(double)); // allocate memory enough for "n" doubles (an array)
if (a != NULL) // if the allocation was successful
for (p = a; p < a + n; p++) // loop from the beginning of the array to the end
*p = v; // fill every element of the array with the value "v"
return a; // return the new array
}
所以,如果我调用此函数:
double * myarray;
myarray = f(3, 1.3);
现在我有:
myarray[0] = 1.3
myarray[1] = 1.3
myarray[2] = 1.3
因此,要回答你的问题:
你能解释我这是什么函数需要什么?
是否复制n中的v的内容?
v
是一张双人床和n
是一个int,甚至不意义。它使数组n
变大,并使用值v
对其进行初始化。如果是,为什么会返回?
a
所以你必须在新创建的数组的引用。 (请参阅上面关于如何使用它的示例)如果分配失败,它返回一个新分配的double
数组,大小为n
,数值为v
或NULL
。
这个循环:
for (p = a; p < a + n; p++)
*p = v;
使用指针运算。由于p
是指向double
的指针,因此增加它将指向下一个要写入的双精度值。 *p = v
在指定位置写入double。
它分配一个n
双精度数组,初始化数组中的每个元素的值为v
。
该函数返回a
以允许调用者使用这个新分配的数组。
复制的v
n次成浮点
该阵列在功能分配,并包含n
浮子元件的阵列。
在函数数组a
中的每个元件的端部含有v
作为值
分配Ñdouble数组在堆中,用v填充并将指针返回给它?
在我看来,我建议在提出这些问题之前先研究一点C。最好的祝愿! – Kyrol
有一个无限数量的C函数(谁显然不知道关于C)可能不理解......为什么不把它们全部发布到SO? –