标题: C语言二维数组问题 [打印本页]

作者: cheney03    时间: 2022-8-10 08:54
标题: C语言二维数组问题
主程序:

大佬们帮我分析一下:为什么我定义二维数组double a[4][4],一维数组b[]的计算值全为0,

然而定义double a[3][3]、double a[3][4]或者int a[4][4] ,一维数组的计算值正确。



这个二维数组我后面需要用到的。




作者: 天ノ忆    时间: 2022-8-10 10:22
你这程序里操作a[][]了吗?至于b[],你不会debug吗?
作者: lkc8210    时间: 2022-8-10 10:37
怀疑内存溢出了
普通C51单片机只有256Byte内存
一个double有 4Byte
你用了4 x (12+12+4x4+8+4) = 208 Byte
再加上其他变量
可能会超过256Byte

不知道你用哪款单片机
如果用的是STC
试试把所有double改为double xdata
作者: Hephaestus    时间: 2022-8-10 10:39
你这内存都溢出到太阳系以外了,怎么可能正常工作,奇怪的是C51链接的时候没有报错???
作者: haiyang201    时间: 2022-8-10 11:45
maxn等于多少???
作者: cheney03    时间: 2022-8-10 17:27
haiyang201 发表于 2022-8-10 11:45
maxn等于多少???

maxn=12;
作者: cheney03    时间: 2022-8-10 17:29
天ノ忆 发表于 2022-8-10 10:22
你这程序里操作a[][]了吗?至于b[],你不会debug吗?

暂时没有操作a[][],只是定义,后面会用到
作者: cheney03    时间: 2022-8-10 17:31
lkc8210 发表于 2022-8-10 10:37
怀疑内存溢出了
普通C51单片机只有256Byte内存
一个double有 4Byte

用的是STC89C52RC,只有128Byte内存,应该是内存问题,我换款单片机试试。
作者: cheney03    时间: 2022-8-10 17:32
Hephaestus 发表于 2022-8-10 10:39
你这内存都溢出到太阳系以外了,怎么可能正常工作,奇怪的是C51链接的时候没有报错???

确实,内存超了居然还能编译通过
作者: cheney03    时间: 2022-8-11 11:11
问题解决了,是单片机内存问题,谢谢各位!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1