通过mex函数返回C结构

问题描述 投票:0回答:1

我试图将在mex函数中创建的结构返回给matlab。现在有一个函数mxCreateStructArray但我正在为树数据结构创建一个节点类型的结构,因此它是一个形成的递归链表。此外,节点由动态存储器分配形成。所以,我不可能预先分配内存。我不知道如何将形成的结构传输到matlab-type struct作为函数的输出。

c matlab mex
1个回答
0
投票

如果您使用严格的C工作,解决方案是使用指针。指针允许你告诉你的程序“嘿,我会把这个记忆地址告诉你,我告诉你这个地址是什么,你为我做的事情,而你不必自己动手”。当在这方面使用指针时,它们可以非常强大,能够改变常量的值。然而,这种权力经常被滥用或滥用,因此许多语言对指针的使用施加了限制,或者创建了自己的解决方法来实现其功能。

MATLAB does have some pointer functionality,然而你回归整棵树的方法是不好的做法。那么多的信息,更不用说它的效率在很多方面都是危险的。返回整个节点树的函数可能是无用的甚至是不必要的信息。您应该尝试重新设计程序,使其从头节点开始,递归地沿着树向下并从尾部向上返回每个节点。

© www.soinside.com 2019 - 2024. All rights reserved.