| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 288 人关注过本帖
标题:一个小小的问题,关于结构体的
只看楼主 加入收藏
鹿言弓
Rank: 1
等 级:新手上路
帖 子:26
专家分:1
注 册:2012-11-14
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:6 
一个小小的问题,关于结构体的
当定义一个结构体,像这样的
struct l{
    int L[6];
    int length;
           }n;   
         若到达n.L[6],溢出啦,那么length的值是否也会改变?
搜索更多相关主题的帖子: 结构体 
2012-12-13 15:11
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:1 
应该会吧

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-13 15:12
crystall
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:184
专家分:809
注 册:2012-12-1
收藏
得分:4 
溢出之后,会覆盖掉length,因此数据改变了。我这敲了个例子,你可以看看。
程序代码:
#include<iostream>
#include<string>
using namespace std;

struct tagStruct
{
    tagStruct()
    {
        nLength = sizeof(nAry);
        memset(nAry, 0, nLength);
    }

    int nAry[6];
    int nLength;
}Test;  

void main()
{
    int nAry[3][3]  = {{1, 2, 3}, {4, 5, 6},{7, 8, 9}};
    memcpy(Test.nAry, nAry, sizeof(nAry));
}
2012-12-13 15:28
zhou31146001
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:303
专家分:131
注 册:2012-11-28
收藏
得分:1 
会改变   三楼的很详细
2012-12-13 15:57
qq839431011
Rank: 4
来 自:河北
等 级:业余侠客
帖 子:105
专家分:296
注 册:2012-12-5
收藏
得分:1 
过来学习一下

穷则变,变则通,通则久 寂寞平淡
2012-12-13 16:00
炎黄宇宙
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:53
专家分:104
注 册:2012-11-12
收藏
得分:2 
回复 楼主 鹿言弓
这不叫溢出,叫越界。n.L[6]越界了,把其他地方的数据覆盖了。但是你这个程序里不会覆盖lenth,如果把lenth的定义放在L[6]的上面的话应该会覆盖掉lenth
2012-12-13 16:25
诚心求教
Rank: 1
等 级:新手上路
帖 子:14
专家分:2
注 册:2012-11-28
收藏
得分:1 
有点明白了
2012-12-13 16:55
快速回复:一个小小的问题,关于结构体的
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013121 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved