OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1947|回复: 2

stm32定义可变长数组无法运行

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-5-13
在线时间
3 小时
发表于 2019-5-13 16:16:39 | 显示全部楼层 |阅读模式
1金钱
IDE:MDK 5.14/MDK 5.26
芯片:stm32F103VC
问题:在C99 Mode下,下面这段代码定义了变长数组,编译能通过,但烧写到芯片内无法跑起来,进入仿真状态,
程序指针PC也无法指向main函数或汇编代码段,而是指向其他代码,也无法仿真起来。
如果屏蔽这两行代码,程序是能正常运行的,各位是否有这个问题?

代码:
void func_Test(void)
{
      int Nb = 2;
      int T[Nb];

      .....
      .....
}

最佳答案

查看完整内容[请看2#楼]

这么做太危险吧? 要么使用定长数组, 要么临时申请分配内存。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4522
金钱
4522
注册时间
2018-5-11
在线时间
947 小时
发表于 2019-5-13 16:16:40 | 显示全部楼层
这么做太危险吧?
要么使用定长数组,
要么临时申请分配内存。
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-5-13
在线时间
3 小时
 楼主| 发表于 2019-5-14 08:58:51 | 显示全部楼层
warship 发表于 2019-5-13 16:16
这么做太危险吧?
要么使用定长数组,
要么临时申请分配内存。

这是C99相比C89新增的其中一个特性,运用好可以很好地优化代码,这里并不是说一定要用这种方法,是探讨为什么会出现问题。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-19 19:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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