我正在Arduino上创建一个“路点”向量。每个路点都是一个对象。显然,Arduino需要存储多个路点以进行路径导航。但是,用户需要能够添加,删除路点并移动它们,而不是将这些路点存储在标准预编程数组中。不幸的是,Arduino没有内置向量类型作为库。
我目前正在考虑两种选择:
在Container for objects like C++ 'vector'?中,有人发布了一个通用库。它不包含任何索引删除或移动操作,但它包含一些内存管理策略。
我过去使用过malloc,dealloc和calloc。但是,我不喜欢这个选项,特别是对于类。但这是我场景下更好的选择吗?
哪个方案更好?
std::vector<>
或任何其他在运行时背后进行动态内存分配的类型。这会为Arduino打开潜在的严重、不安全的崩溃风险,因为堆栈溢出。相反,您需要的是一个固定大小的内存池,它是静态分配的,或者在程序初始化时动态分配一次,但在运行时永远不会增加。您的向量应该是一个自定义向量类或库,在运行时使用这个固定大小的内存池。 - Gabriel Staples