标题: error C242: 'array[]': too many initializers [打印本页]

作者: monster‘’    时间: 2023-8-27 22:14
标题: error C242: 'array[]': too many initializers
大佬帮忙瞅瞅啥问题以及帮忙提一下解决方案,谢谢

void jl()  //对称流水后积累·        
{
  unsigned char i, j;
        
        in cj[5][6]=
                        {{0x7e,0xbe,0xde,0xee,0xf6,0xfa,0xfc},
                        {0x7c,0xbc,0xdc,0xec,0xf4,0xf8},
                        {0x78,0xb8,0xd8,0xe8,0xf0},
                        {0x70,0xb0,0xd0,0xe0},
                        {0x60,0xa0,0xc0},
                        {0x40,0x80}};
        for(i=0;i<=5;i++)
                        {
                                for(j=0;j<=6;j++)
                                {
                                        P0=cj[j];
                                        delay(2);
                                }
                        }
报错:程序一.c(160): error C242: 'array[]': too many initializers
求大神解答


作者: cnfloatleaf    时间: 2023-8-28 00:23
好像要这样吧
        unsigned char cj[5][6]=
                        {0x7e,0xbe,0xde,0xee,0xf6,0xfa,0xfc,
                        0x7c,0xbc,0xdc,0xec,0xf4,0xf8,
                        0x78,0xb8,0xd8,0xe8,0xf0,
                        0x70,0xb0,0xd0,0xe0,
                        0x60,0xa0,0xc0,
                        0x40,0x80};

作者: chxelc    时间: 2023-8-28 08:49
明显数组元素数量与申明的数量不对。cj[5][6]表示二维数组由5个一维数组组成,每个一维数组包含6个元素。你后面的元素对不上。改成unsigned char cj[5][6]={};这样省略数组元素,需要的时候再赋值。如果一定要先申明元素,就应该与数组的申明数一一对应。
作者: Hephaestus    时间: 2023-8-28 08:57
5x6=30
你仔细数数cj有多少个成员

小学生都不会犯这种错误。
作者: zhuls    时间: 2023-8-28 08:59
数组第一行就超标了。另个不知2维数组不等长是否可行,请高手做答~~




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1