免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: flyingbear
打印 上一主题 下一主题

使用结构体内部成员的指针是否属于c/c++编程的忌讳? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-10-18 17:52 |只看该作者

使用结构体内部成员的指针是否属于c/c++编程的忌讳?

哦哦 反正我没碰到这问题过,也有可能是调试器的问题,谁知道呢,
已经不能掌握,违反常理...
1+1应该等于2
如果一个计算器告诉你1+1=3那很明显是计算器的问题哦
改字节对齐能解决这问题?更离谱了...

论坛徽章:
0
12 [报告]
发表于 2004-10-18 17:57 |只看该作者

使用结构体内部成员的指针是否属于c/c++编程的忌讳?

原帖由 "virmin" 发表:
哦哦 反正我没碰到这问题过,也有可能是调试器的问题,谁知道呢,
已经不能掌握,违反常理...
1+1应该等于2
如果一个计算器告诉你1+1=3那很明显是计算器的问题哦
改字节对齐能解决这问题?更离谱了...


写程序就是怕遇到这种离谱头大的事情了...

论坛徽章:
0
13 [报告]
发表于 2004-10-18 18:00 |只看该作者

使用结构体内部成员的指针是否属于c/c++编程的忌讳?

有一种可能哦,你的指针使用前被interpret_cast过了,不过c里面又没有父类
子类的东西,真是愁死人...
你有没有试过把这结构体单独的抽出来验证一把?就像
struct a
{
.....
};

strcut b
{
....
};

struct c   //出问题的那个struct
{
....
struct a aa;
struct b bb;
};

然后在最简单的环境里
int main()
{
    struct c  test;
    struct a *pa;
    .......
}

这样这样子过?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2004-10-18 18:10 |只看该作者

使用结构体内部成员的指针是否属于c/c++编程的忌讳?

楼上讲得好。
如果发现了问题,
那应该让问题更加明晰才对。

论坛徽章:
0
15 [报告]
发表于 2004-10-18 18:19 |只看该作者

使用结构体内部成员的指针是否属于c/c++编程的忌讳?

原帖由 "virmin" 发表:
有一种可能哦,你的指针使用前被interpret_cast过了,不过c里面又没有父类
子类的东西,真是愁死人...
你有没有试过把这结构体单独的抽出来验证一把?就像
struct a
{
.....
};

strcut b
{
....
};

s..........


这样做过。在一个测试工程(vc的console工程,没有定义任何class,main函数定义在cpp里)没有发现问题。在主要的工程里(mfc工程),有问题,其他细节还没有来得及整理。由于代码没有牵涉平台相关的东西,所以是否使用mfc这个因素并没有考虑很多。
总之这种问题要么就是很诡异,要么就是很弱智。

论坛徽章:
0
16 [报告]
发表于 2004-10-18 18:57 |只看该作者

使用结构体内部成员的指针是否属于c/c++编程的忌讳?

放弃,以后碰到再说,估计不会碰到了,偶现在转啊转啊,转到.net上去
想找回unix下的工作,多自在...

论坛徽章:
0
17 [报告]
发表于 2004-10-18 20:57 |只看该作者

使用结构体内部成员的指针是否属于c/c++编程的忌讳?

其实我的感觉是:可能程序的其它地方出错了,影响了这段地址结构,类似的问题我以前在一个手下写的程序上见过

论坛徽章:
0
18 [报告]
发表于 2004-10-19 11:50 |只看该作者

使用结构体内部成员的指针是否属于c/c++编程的忌讳?

这应该是你的pConnSet里面的rClient是一个多继承的类, 它的首个继承关系不是recConn。
例如:

class RClient : public XXX, public recConn


你调用recConn *p= &pConnSet->;rClient 时,会有一个隐含的offset加到指针上。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP