有人可以提供一个接收 FLOAT8[] 值并返回 INT[] 值的 C 函数模板吗?
我发现的示例使用与输出数字类型相同的输入数字类型。
我还没有看到任何示例来说明如何创建新的 INT[] 并返回它。
最佳答案
一种方法:
INT *my_function1(FLOAT8 *float8)
{
INT *zzz = malloc(sizeof(INT) * 10);
zzz[0] = 123;
zzz[1] = 234;
...
return(zzz);
}
像这样调用上面的内容:
{
INT *aaa = NULL;
FLOAT8 bbb[10];
...
aaa = my_function1(bbb);
printf("%d, %d\n", aaa[0], aaa[1]); /* Output: "123, 234"
...
if(aaa)
free(aaa);
}
另一种方式:
void my_function2(FLOAT8 *IN_float8, INT **OUT_int)
{
INT *yyy=malloc(sizeof(INT) * 10);
zzz[0] = 123;
zzz[1] = 234;
...
if(OUT_int)
*OUT_int = yyy;
else
{
free(yyy);
fprintf(stderr, "Oops! You gave me a NULL pointer for OUT_int.\n");
}
return;
}
像这样调用上面的内容:
{
INT *aaa = NULL;
FLOAT8 bbb[10];
...
my_function1(bbb, &aaa);
printf("%d, %d\n", aaa[0], aaa[1]); /* Output: "123, 234"
...
if(aaa)
free(aaa);
}
关于c - Postgresql C 函数接受 FLOAT8[] 并返回 INT[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23554303/