有人可以为C函数提供一个模板,该模板将接收FLOAT8 []值并返回INT []值吗?
我找到的示例使用与输出数字类型相同的输入数字类型。
我没有看到任何显示如何创建新INT []并返回它的示例。
答案 0 :(得分:0)
一种方式:
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);
}