是否可以将 "on the fly" 数组传递给 C 函数?
Is it possible to pass an "on the fly" array to a C function?
在 Fortran 中,可以将动态构建的数组传递给子例程:
call sub_that_wants_3_elm_array((/1,2,3/),output_arg)
是否可以在 C 中做类似的事情?这看起来非常基础,但我无法找到任何关于此的内容,是或否。
是的。可以使用 复合文字(自 C99 起)。
例如
#include <stdio.h>
void fun(int *a)
{
printf("%d\n", a[2]); //prints 72
}
int main(void)
{
fun((int[]){1, 99, 72});
}
您还可以从链接中找到更多示例:
在 Fortran 中,可以将动态构建的数组传递给子例程:
call sub_that_wants_3_elm_array((/1,2,3/),output_arg)
是否可以在 C 中做类似的事情?这看起来非常基础,但我无法找到任何关于此的内容,是或否。
是的。可以使用 复合文字(自 C99 起)。
例如
#include <stdio.h>
void fun(int *a)
{
printf("%d\n", a[2]); //prints 72
}
int main(void)
{
fun((int[]){1, 99, 72});
}
您还可以从链接中找到更多示例: