TI中文支持网
TI专业的中文技术问题搜集分享网站

算法内包含循环嵌套导致数据溢出

我在主函数的while里编写了一种算法,该算法涉及到大量的矩阵运算,因为没找到类似于MATLAB的矩阵运算库,我用大量的for循环等C语言完成了代码的编写,在运算过程中,涉及到数组之间的嵌套及调用,中间大量数组结果总是溢出!如果将while关闭,该算法只执行一次,结果基本是正确的,当while打开或者该算法执行100次及以上,观察到运行中的数组结果都是溢出的,给我的感觉是内存中的数据没有及时的刷新清空,而是不断的叠加最终导致溢出。

请教大佬们该如何解决!

Nancy Wang:

请问用的哪款芯片?

user6407181:

回复 Nancy Wang:

您好,我用的是c2000的芯片28335,我在两个论坛都发了帖子,这边想听听您的意见。我的这个问题该怎么解决

Nancy Wang:

回复 user6407181:

看到您在c2000发的帖子,可以试试看申请动态内存。
无法自动清除内存什么意思?

user6407181:

回复 Nancy Wang:

我举个简单的例子来说一下我的观点吧。正常情况,一段内存,入栈50组数据,出栈50组数据。当我出现嵌套的代码时,也就是下一段代码用到了上一组数据,这50组数据不能出栈,需要等待,而此刻新的数据又进来,比如现在一共有100组数据,那么下次处理时处理的是100组数据,而不是我想要的后进来的50组数据,之前的内存没有清除,数据大小不断地叠加,导致我运算结果出现错误,最终溢出。这是我觉得结果溢出的原因,打了个比方,可能不对。

Nancy Wang:

回复 user6407181:

看您的描述,一般是推荐动态申请内存的。
不清楚c2000内部是否可以开启代码优化,以及是否有矩阵运算库,你可以去c2000论坛咨询一下。

user6407181:

回复 Nancy Wang:

好的,感谢您这边的回复,我再找找是否有其他的解决办法!

赞(0)
未经允许不得转载:TI中文支持网 » 算法内包含循环嵌套导致数据溢出
分享到: 更多 (0)