Arrays 无界结构数组…我缺少什么?

Arrays 无界结构数组…我缺少什么?,arrays,structure,Arrays,Structure,我试图设置一个由subSeq类型的结构数组组成的LEDSeq类型。LEDSeq的实际成员可能具有大不相同的subSeq数组大小,即从几个subSeq条目到数千个。我试图使用typedef来定义LEDSeq,并在事后将数据集分配给包含不同subSeq计数的不同成员。当我设置subSeq size[]时,由于初始值设定项太多,编译失败,它假定数组大小为[0];如果我指定的数组足够大,可以容纳任何成员,例如[10000],那么编译器会警告它忽略了typedef声明,但不会编译。问题是,如果我必须将所有

我试图设置一个由subSeq类型的结构数组组成的LEDSeq类型。LEDSeq的实际成员可能具有大不相同的subSeq数组大小,即从几个subSeq条目到数千个。我试图使用typedef来定义LEDSeq,并在事后将数据集分配给包含不同subSeq计数的不同成员。当我设置subSeq size[]时,由于初始值设定项太多,编译失败,它假定数组大小为[0];如果我指定的数组足够大,可以容纳任何成员,例如[10000],那么编译器会警告它忽略了typedef声明,但不会编译。问题是,如果我必须将所有变量名设置为[10000]大小,即使大多数变量只需要小于[5]的大小,我使用的小处理器也没有足够的内存来浪费

如果我使用相同的方法使用二维数组,我不需要指定最重要的数组项的大小,只需要指定最不重要的数组项,即LEDSeq[][2],因此我可以让它使用各种大小的命名变量。当指定了最低有效项(结构)的大小时,结构数组的大小不也应该如此吗?如果需要的话,数组大小可以不指定

我为使用不正确的术语提前表示歉意,但希望我已经清楚地说明了我的问题所在

    struct subSeq {
  const byte intens;  
  const short duration;
};

typedef struct LEDSeq {
  subSeq seq[]; 
  };

struct LEDSeq LightSeq = {          255, 1000,
         255, 0,
         255, -1
};
struct LEDSeq SquareWave = {        0, 600,
         0, 0,
         255, 600,
         255, 0,
         0, -1
};

short x, y, a = 1, b;


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  delay(100);
  Serial.println("setup done ");
}

void loop() {
  // put your main code here, to run repeatedly:

  if (a == 1) {
    for (x = 0; x < 10; x++) {
      Serial.println(LightSeq.seq[x].intens);
    }
    a--;
  }
}
struct subSeq{
常量字节强度;
持续时间短;
};
类型定义结构LEDSeq{
子Q序列[];
};
结构LEDSeq LightSeq={2551000,
255, 0,
255, -1
};
结构LEDSeq SquareWave={0600,
0, 0,
255, 600,
255, 0,
0, -1
};
短x,y,a=1,b;
无效设置(){
//将安装代码放在此处,以便运行一次:
Serial.begin(9600);
延迟(100);
Serial.println(“设置完成”);
}
void循环(){
//将主代码放在此处,以便重复运行:
如果(a==1){
对于(x=0;x<10;x++){
Serial.println(LightSeq.seq[x].intens);
}
a——;
}
}