Movesense RAM,变量分配

时间:2018-07-06 06:25:41

标签: movesense

使用1.6.2为什么可以用

构建代码
conda install -c memex pyldavis

如果我没有记错以前的版本,那我会报错,因为内存有限。我认为更正确的方法应该是

byte data[100000000];

很抱歉出现基本的C / C ++问题

1 个答案:

答案 0 :(得分:0)

如果将第一个代码添加到函数或方法中,则会在运行时从堆栈中分配它。这就是链接器不会警告您的原因。如果将其添加为全局变量(方法和类之外),则会发生错误。尽管“新”运算符有时在Movesense中工作,但建议不要使用分配内存的方法。内存分配例程在 movesense.h -file:

中声明。
void* memalloc(size_t size);
void* memcalloc(size_t size);
void memfree(void* ptr);

但是,有一种更简单的方法。由于用户 LaunchableModules 是从Movesense HEAP分配的,因此您只需将所需的任何固定大小的缓冲区声明为类成员,它们将在实例化LaunchableModule时自动分配。尽管在传感器运行时查询可用内存是个好主意,但是在向模块添加大的缓冲区分配之前,这样您就不会因为传感器用完HEAP而最终陷入每次尝试启动时都会重置的传感器。