找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1869|回复: 10
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
unsigned char mmhc[8];
unsigned char sjhc[16];
这是我定义的两个 全局 的数组;但是,我在程序中对sjhc[]进行操作时却改变了mmhc[0]的值;
    strcpy(sjhc,"0123456789abcdef");就是这条指令,执行完这条指令后,mmhc[0]的值就变成了0 。
我编译后M51文件对mmhc[]与sjhc[]的内存分配如下:


我猜想和他们内存地址的分配,"0123456789abcdef"字符串会在最后加一个'\0',stcpy这个函数,数组指针有一定的关系。
但却不知道具体是怎么回事,希望有人能帮助我,
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 | 只看该作者
好难的样子
回复

使用道具 举报

5#
ID:95678 发表于 2015-11-13 19:46 | 只看该作者
好难的样子
回复

使用道具 举报

6#
ID:95684 发表于 2015-11-13 20:30 | 只看该作者
企鹅企鹅
回复

使用道具 举报

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

评分

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

查看全部评分

回复

使用道具 举报

8#
ID:96006 发表于 2015-11-16 17:45 | 只看该作者
我的币现在是0啊
回复

使用道具 举报

9#
ID:96006 发表于 2015-11-16 17:46 | 只看该作者
我的币现在是0啊
回复

使用道具 举报

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

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

使用道具 举报

11#
ID:96072 发表于 2015-11-17 13:40 | 只看该作者
数组就是对里面的号
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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