我想做的是:

//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}};

这一行将导致intCommand的大小为Array Seq[7][1]
我想用NUMSERVOS == 6中的值初始化Array Seq[][]
问题是:
Steps不是常量整数。
Steps不是静态的。
我是否可以使用在数组之前初始化的成员动态地为数组分配内存?

最佳答案

Arduino是一个资源有限的小型平台。一般来说,在嵌入式系统中使用动态分配是一个坏主意,而在8-bitter上使用它是一个非常坏的主意。动态内存有太多的问题:它需要一个堆,这是8位用户负担不起的奢侈,它给您带来碎片和内存泄漏的问题,而且速度非常慢。
您应该做的是分析程序的输入并确定最坏的情况,然后静态地分配足够的内存来覆盖最坏的情况。

关于c - 如何使用结构成员动态分配成员数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10824081/

10-13 03:53