Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Julia 具有可变与不可变结构的ccall_Julia - Fatal编程技术网

Julia 具有可变与不可变结构的ccall

Julia 具有可变与不可变结构的ccall,julia,Julia,当返回类型具有可变结构时,与具有不可变结构时相比,Julia如何处理ccall 这里有一个简单的库,它具有get\u foos()函数,该函数返回一个结构,该结构有另一个结构,其中一个成员为双精度 typedef结构{ 双a; }傅; typedef结构{ 福福阿; }福斯; Foos get_Foos(){ 福斯福斯; foos.foo_a.a=1; 返回foos; } 以下Julia代码按预期打印Foos(Foo(1.0)): 使用Libdl 结构Foo a::Cdouble 结束 结构F

当返回类型具有可变结构时,与具有不可变结构时相比,Julia如何处理
ccall

这里有一个简单的库,它具有
get\u foos()
函数,该函数返回一个结构,该结构有另一个结构,其中一个成员为双精度

typedef结构{
双a;
}傅;
typedef结构{
福福阿;
}福斯;
Foos get_Foos(){
福斯福斯;
foos.foo_a.a=1;
返回foos;
}
以下Julia代码按预期打印
Foos(Foo(1.0))

使用Libdl
结构Foo
a::Cdouble
结束
结构Foos
foo_a::foo
结束
函数get_foos()
sdk_dll=Libdl.dlopen(“libfos”)
f=Libdl.dlsym(sdk\u dll,:get\u foos)
返回ccall(f,Foos,())
结束
show(get_foos())
但是如果内部结构是可变的,我会得到一个segfault

可变结构Foo
a::Cdouble
结束
结构Foos
foo_a::foo
结束
Julia 1.1,在Linux和OSX上

我假设这不是一个bug,但是找不到足够的信息来解释为什么会发生这种情况