当前位置:  技术问答>linux和unix

这是C++中的一段程序,请大家帮忙看看,有两个地方看不懂?

    来源: 互联网  发布时间:2017-04-23

    本文导语:  st_obj *ptr; //ptr->n,比1大 for(int i = 0; i n; i++){ ptr->data_[i].camp_id....);//data_[0],怎么能这么使用呢?数据越界了啊 } struct st_obj { char id[60]; int n; struct { U64 ll_id; int counst; } data_[0]; inline U32 Size() {return s...

st_obj *ptr;
//ptr->n,比1大
for(int i = 0; i n; i++){

ptr->data_[i].camp_id....);//data_[0],怎么能这么使用呢?数据越界了啊

}

struct st_obj {
char id[60];
int n;
struct {
U64 ll_id;
int counst;
} data_[0];

inline U32 Size() {return sizeof(*this)+n*sizeof(data_[0]);}//这个函数有什么用吗?这么写有什么意义?
};

|
柔性数组,只是为了索引,实际内存分配是不止那么大的。

|
1、越界了是越界了,指是越界访问,数据还是没变越界的,这种情况一般用在st_obj *ptr;指向的地方的长度一开始未知。通信中广泛使用
2、U32 Size就是返回真是长度啊。n表示后面加了多少个data_的结构体。

|
st_obj.size() 的时候调用它啊。size是成员函数。

|

这就好像类的成员函数,方便调用,可以直接显示结构体大小。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 那位朋友帮忙看看这是什么意思?多谢
  • 帮忙看看这是个什么错误啊?
  • 请大家帮忙,在主板为msi 945的机器上,redhat9 插u盘就死机,这是怎么回事?
  • 这是什么原故?帮忙看一下!
  • 最近在linux下装extmail,看文档不明白这是什么意思,帮忙翻译下
  • 超级终端下输入某些按键显示的是一个�号,这是什么原因?求高手帮忙
  • 各位高手!!这是一个十分困难的问题,请各位帮忙解答一下?Help!!!
  • 请各位帮忙翻译一下(这是关于操作系统的文章)
  • 这是一段可以执行的awk程序,请问能否改进一下? 帮忙来看看,谢谢
  • 这是一道面试题,哪位大哥帮忙找出错误并改正使程序能正常运行。
  • 白痴一点的问题:请帮忙看一下这是不是IBM 的AIX
  • 请教在哪里可以学习IBM AS/400,怎样学习较好?各位帮帮忙,这是一个关系到小弟前程的问题!重谢!!!
  • 请帮忙,这是怎么啦?
  • VMware虚拟机linux系统,在启动的时候弹出eth0的时候失败了。进入系统的时候,输入ifconfig没有IP,这是什么情况???那位高手帮帮忙,不甚感激
  • 请大家帮忙!看看这是什么错误!在线!!
  • 各位帮忙看看这是什么编译错误阿?
  • 高手请进,中文乱码问题,这是我同一个问题的第五个帖子了,大伙帮忙,心情好郁闷.期待高手.
  • 这是THINK IN JAVA 上的例子,为什么会出错,帮忙看看
  • oracle iis7站长之家
  • 这是环境变量问题吗?(元气大伤,分值不高,希望多多帮忙)
  • 据说这是史上最变态的6个C语言Hello, World程序
  • 我从网上下了一个JB5,装好后启动时它要我输入'名字'和'公司',这是干麻呀?最后还是进不去这是怎么回事呀?
  • 这是用什么方式编码的,如何解码?
  • SSread 这是什么格式用什么阅读器
  • 这是jbuilder6的bug还是windows的问题?
  • 谁能告诉我 这是为什么
  • 请问有谁知:“空格”对应%20, “<“对应%3C,这是几进制或是什么格式的转换?
  • 这是怎么回事??来者有分!!
  • 这是哪个地方出错了?
  • 这是什么原因了?
  • 请问这是什么型号的交换机??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,