我想做的是:
//Define a structure to store multistep sequences.
struct Command
{
int Steps; //Number of steps in the seq
int StepCount; //must be set to -1
int Seq[Steps][NUMSERVOS + 1];
};
例如,初始化可以如下所示:
Command Home = {1,-1,{90, 90, 90, 90, 90, 90, 1000}};
这一行将导致int
Command
的大小为Array Seq
([7][1]
)我想用
NUMSERVOS == 6
中的值初始化Array Seq[][]
。问题是:
Steps
不是常量整数。Steps
不是静态的。我是否可以使用在数组之前初始化的成员动态地为数组分配内存?
最佳答案
Arduino是一个资源有限的小型平台。一般来说,在嵌入式系统中使用动态分配是一个坏主意,而在8-bitter上使用它是一个非常坏的主意。动态内存有太多的问题:它需要一个堆,这是8位用户负担不起的奢侈,它给您带来碎片和内存泄漏的问题,而且速度非常慢。
您应该做的是分析程序的输入并确定最坏的情况,然后静态地分配足够的内存来覆盖最坏的情况。
关于c - 如何使用结构成员动态分配成员数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10824081/