OpenEdv-开源电子网

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

矩阵(二维数组)对应的内部数据相乘结果不对,调试过程如下?

[复制链接]

32

主题

171

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-1-7
在线时间
75 小时
发表于 2018-4-5 12:56:33 | 显示全部楼层 |阅读模式
3金钱


今天又调了调,发现一个东西。


主要是计算G矩阵的转置与G矩阵的乘积。
打印出来的有G_T(G的转置)与G




如果我把计算中的每一次G_T[0][0]*G[0][0]到打印出来,结果图如下:
a.png aa.png
b.png bb.png
那每一步计算好像都有错,如图是1.000000*1.000000=2.000000;后面是累加了


如果注释掉每一步计算的printf()
只打印出计算的结果即G_T*G的结果,结果是正确的
c.png cc.png
难道是Printf()函数溢出?何解?

最佳答案

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

原因是printf()函数输出的原因
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

32

主题

171

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-1-7
在线时间
75 小时
 楼主| 发表于 2018-4-5 12:56:34 | 显示全部楼层
原因是printf()函数输出的原因
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-4-7 02:41:53 | 显示全部楼层
化整为零吧,把你的数组改成2*2的,再试试。接着慢慢增大,找规律。
回复

使用道具 举报

32

主题

171

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-1-7
在线时间
75 小时
 楼主| 发表于 2018-4-7 15:42:41 | 显示全部楼层
正点原子 发表于 2018-4-7 02:41
化整为零吧,把你的数组改成2*2的,再试试。接着慢慢增大,找规律。

数组的内存大小是对的,计算出来是对的,但是printf打印出来就有错,也不知道啥原因?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-4-8 02:08:58 | 显示全部楼层
用了OS么?
回复

使用道具 举报

32

主题

171

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-1-7
在线时间
75 小时
 楼主| 发表于 2018-4-9 11:34:15 | 显示全部楼层

是在OS里面执行的程序
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-4-11 01:59:10 | 显示全部楼层
Jevin乐动 发表于 2018-4-9 11:34
是在OS里面执行的程序

试试不要os正常不先。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

32

主题

171

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-1-7
在线时间
75 小时
 楼主| 发表于 2018-4-11 11:38:13 | 显示全部楼层
正点原子 发表于 2018-4-11 01:59
试试不要os正常不先。

试了,也是一样F:\11F:\1111
回复

使用道具 举报

32

主题

171

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-1-7
在线时间
75 小时
 楼主| 发表于 2018-4-11 11:38:45 | 显示全部楼层
正点原子 发表于 2018-4-11 01:59
试试不要os正常不先。

为什么不能回复图片???
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-4-12 00:34:29 | 显示全部楼层
Jevin乐动 发表于 2018-4-11 11:38
为什么不能回复图片???

高级回复
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

32

主题

171

帖子

0

精华

高级会员

Rank: 4

积分
697
金钱
697
注册时间
2017-1-7
在线时间
75 小时
 楼主| 发表于 2018-4-15 14:13:27 | 显示全部楼层

stm32的逻辑程序和带有OS的程序都不能用C语言自带malloc()吗?为什么?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165287
金钱
165287
注册时间
2010-12-1
在线时间
2107 小时
发表于 2018-4-16 01:34:39 | 显示全部楼层
Jevin乐动 发表于 2018-4-15 14:13
stm32的逻辑程序和带有OS的程序都不能用C语言自带malloc()吗?为什么?

不能直接 用,貌似要设置,具体原因自己百度吧。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-2 06:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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