C# P/Invoke—如何使用将地址返回到一个双精度数组的c函数的结果进行双精度访问

C# P/Invoke—如何使用将地址返回到一个双精度数组的c函数的结果进行双精度访问,c#,c,pinvoke,C#,C,Pinvoke,如何从函数fann_run()获取浮点数组 这是它的C版本 fann_type *calc_out; fann_type input[2]; struct fann *ann = fann_create_from_file("xor_float.net"); input[0] = -1; input[1] = 1; calc_out = fann_run(ann, input); printf("xor test (%f,%f) -> %f\n", input[0], input[1],

如何从函数fann_run()获取浮点数组

这是它的C版本

fann_type *calc_out;
fann_type input[2];
struct fann *ann = fann_create_from_file("xor_float.net");
input[0] = -1;
input[1] = 1;
calc_out = fann_run(ann, input);
printf("xor test (%f,%f) -> %f\n", input[0], input[1], calc_out[0]);
fann_destroy(ann);
我正试着用c#

现在我想使用'result'访问浮动。 我该怎么做

如果知道元素的数量,可以使用将值从非托管内存复制到托管数组中:

float[] output = new float[7];
Marshal.Copy(result, output, 0, output.Length);

完成后不要忘记释放
结果

如何知道数组的长度?或者它实际上只是一个指向单个浮点的指针?给定的nn网络初始化为600个输入神经元和7个输出神经元,因此它应该给我一个长度为7的数组,就像c示例中给出长度为1的数组一样。
float[] output = new float[7];
Marshal.Copy(result, output, 0, output.Length);