硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2560|回复: 2
收起左侧

[其它] 在IAR上用变量来定义数数组长度编译出错解决办法

[复制链接]

3

主题

13

回帖

22

积分

新手上路

积分
22
发表于 2018-6-7 15:36:25 | 显示全部楼层 |阅读模式
    float32_t *d;
    d = (float32_t *)aqCalloc(rows*cols, sizeof(float32_t));  
改定义数组让系统分配内存
    float32_t d[rows*cols];
出现问题的地方是数组的定义: float32_t d[rows*cols];
    而定义数组的长度rows*cols是一个变量,上面出错的原因是IAR要求定义数组的长度是一个常数。
改变库函数,这样工作量就太大
   在网上找到一个办法,这个跟C语言的编译有关,解决方法是:
   在options->C/C++ Compiler的C dialect  选中 Allow VLA即可

评分

参与人数 1金币 +100 收起 理由
eric2013 + 100 很给力!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107034
QQ
发表于 2018-6-7 19:20:37 | 显示全部楼层
想不到你已经搞定了,非常感谢分享。
回复

使用道具 举报

20

主题

249

回帖

309

积分

高级会员

积分
309
发表于 2018-6-11 09:40:14 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 05:17 , Processed in 0.194509 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表