查看: 290|回复: 4

[未解决] 数组过大怎样解决?

[复制链接]
  • TA的每日心情
    奋斗
    2019-3-28 13:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-6-18 16:43 | 显示全部楼层 |阅读模式
    需要显示一个220*176大小的彩图,一个像素点2个字节16位,RGB565排列,一张图77440字节,也就是77KB左右,arduino mega2560有256KB容量。现在现在把取模得到的数组放在一个h文件里,编译之后报错
    QQ截图20200618163015.png
    提示说数组内容超过了数组初始化的大小,但是数组是取模软件自动生成的,检查了一下实际上没有超过初始化大小。
    把数组改成二维数组后,报错显示数组过大
    QQ截图20200618163059.png
    但是c语音应该是没有限制数组大小的,而且板子实际容量也足够了,如果减小数组到10000以下是可以编译成功的,那么为什么大一点就不行呢?

    该用户从未签到

    发表于 2020-6-18 17:01 | 显示全部楼层
    我也不知道原因,不过你可以试试拆成2个数组
  • TA的每日心情
    奋斗
    2019-3-28 13:26
  • 签到天数: 1 天

    [LV.1]初来乍到

     楼主| 发表于 2020-6-18 20:21 | 显示全部楼层
    我试了一下分成2个还是太大,分成4个可以,就是有点麻烦
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2020-6-18 23:28 | 显示全部楼层
    avrfreak 上有这个讨论,大致就是 ①数组元素数<32K,②单个目标尺寸<32KB。

    基本上限制死了 C 语言下所有超过 32KB 的可能,除非自己定位数组在 FLASH 的位置,并使用 far 指针

    2020-06-18_232430.png

    原帖地址:
    https://www.avrfreaks.net/forum/compile-error-size-array-too-large?name=PNphpBB2&file=viewtopic&t=58517
  • TA的每日心情
    开心
    2020-7-18 11:24
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2020-6-22 14:19 | 显示全部楼层
    用动态堆分配, 看看

    静态分配的限制很多的                                                     
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    [2019-4-20]RPG无人世界
    [2019-4-20]RPG无人世界
    剧情:主角玄影,为了逃避██的追杀迫不得已发动████在濒死状态来到█
    Arduino串口监视器出现乱码
    Arduino串口监视器出现乱
    我用Arduinio Due将GNRMC数据Serial.prinln出来,通过串口监视器,我们可以发现有时GN
    为什么单击开关按键后会调用其他控件的函数
    为什么单击开关按键后会调
    BlinkerButton Kelvinator_power("btn-pwr"); BlinkerButton Kelvinator_Light("btn-d
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表