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

2019-07-21 01:28发布

IDE:MDK 5.14/MDK 5.26
芯片:stm32F103VC
问题:在C99 Mode下,下面这段代码定义了变长数组,编译能通过,但烧写到芯片内无法跑起来,进入仿真状态,
程序指针PC也无法指向main函数或汇编代码段,而是指向其他代码,也无法仿真起来。
如果屏蔽这两行代码,程序是能正常运行的,各位是否有这个问题?

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

      .....
      .....
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
warship
1楼-- · 2019-07-21 05:43
这么做太危险吧?
要么使用定长数组,
要么临时申请分配内存。
nicechp
2楼-- · 2019-07-21 09:49
warship 发表于 2019-5-13 16:16
这么做太危险吧?
要么使用定长数组,
要么临时申请分配内存。

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

一周热门 更多>