找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1977|回复: 10
收起左侧

关于数组的问题,希望有大神帮忙

[复制链接]
ID:75350 发表于 2015-11-12 09:31 | 显示全部楼层 |阅读模式
unsigned char mmhc[8];
unsigned char sjhc[16];
这是我定义的两个 全局 的数组;但是,我在程序中对sjhc[]进行操作时却改变了mmhc[0]的值;
    strcpy(sjhc,"0123456789abcdef");就是这条指令,执行完这条指令后,mmhc[0]的值就变成了0 。
我编译后M51文件对mmhc[]与sjhc[]的内存分配如下:
QQ截图20151112092535.png

我猜想和他们内存地址的分配,"0123456789abcdef"字符串会在最后加一个'\0',stcpy这个函数,数组指针有一定的关系。
但却不知道具体是怎么回事,希望有人能帮助我,
回复

使用道具 举报

ID:75350 发表于 2015-11-12 10:37 来自手机 | 显示全部楼层
抱歉,unsigned char mmhc[8];中,mmhc[8]改成mmjy[8]
回复

使用道具 举报

ID:94828 发表于 2015-11-12 18:34 | 显示全部楼层
这个  看不懂
回复

使用道具 举报

ID:92262 发表于 2015-11-12 19:54 | 显示全部楼层
好难的样子
回复

使用道具 举报

ID:95678 发表于 2015-11-13 19:46 | 显示全部楼层
好难的样子
回复

使用道具 举报

ID:95684 发表于 2015-11-13 20:30 | 显示全部楼层
企鹅企鹅
回复

使用道具 举报

ID:81808 发表于 2015-11-16 10:55 | 显示全部楼层
数组有一个结束标志!如果它俩挨着,下一组变量受影响是肯定的。C语言不检查数组越界,你把那个[16]改][17]就可以了

评分

参与人数 1威望 +6 黑币 +6 收起 理由
六月雪城 + 6 + 6 很给力!

查看全部评分

回复

使用道具 举报

ID:96006 发表于 2015-11-16 17:45 | 显示全部楼层
我的币现在是0啊
回复

使用道具 举报

ID:96006 发表于 2015-11-16 17:46 | 显示全部楼层
我的币现在是0啊
回复

使用道具 举报

ID:75350 发表于 2015-11-16 22:52 | 显示全部楼层
yanjibao 发表于 2015-11-16 10:55
数组有一个结束标志!如果它俩挨着,下一组变量受影响是肯定的。C语言不检查数组越界,你把那个[16]改][17] ...

原来是这个原因,我现在才知道数组越界这个概念,真的非常感谢您。
回复

使用道具 举报

ID:96072 发表于 2015-11-17 13:40 | 显示全部楼层
数组就是对里面的号
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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