求教联合体union内是否可以声明定义指针类成员,不同类型的指针成员长度是怎么决定的?

HZXI00 2014-04-03 09:43:17
如题,我想在教联合体union内是否声明定义指针类成员,那么我的union分配的长度是多少?我要方位指针成员的方式如
union{
int * i;
char * ch;
}x;
*x.i=1;
*x.ch="hello";
我要访问“hello”中的“o”,该怎么访问?
...全文
286 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
HZXI00 2014-04-03
  • 打赏
  • 举报
回复
继续求教,那么我这个时候的偏移地址不是已经超出union的定义范围了么?怎么保证定义的的空间大小?比如说例子中的不是整型指针而是double数据,那么这个时候,字符指针的还在有效范围内,字符指针的指向的对象超出了double的长度后怎么存储的?
buyong 2014-04-03
  • 打赏
  • 举报
回复
int main() { union{ int * i; char * ch; }x; x.i=1; x.ch= "hello"; printf("string=%c\n",*(x.ch+4)); }
njyhf 2014-04-03
  • 打赏
  • 举报
回复
int main() { union{ int * i; char * ch; }x; x.i=1; x.ch= "hello"; printf("string=%c\n",x.ch[4]); }
HZXI00 2014-04-03
  • 打赏
  • 举报
回复
引用 3 楼 dbzhang800 的回复:
[quote=引用 2 楼 HZXI00 的回复:] 请问版主,那访问呢?我该怎么执行操作?
首先,你 *x.ch="hello"; 这种语句就不对的 其次,你不就是定义一个char *指针么,和普通的char * 一样用。[/quote] 好的,谢谢,那我的指针赋值应该怎么写?还有,第一次发帖,怎么给分?结贴?
dbzhang800 2014-04-03
  • 打赏
  • 举报
回复
引用 2 楼 HZXI00 的回复:
请问版主,那访问呢?我该怎么执行操作?
首先,你 *x.ch="hello"; 这种语句就不对的 其次,你不就是定义一个char *指针么,和普通的char * 一样用。
HZXI00 2014-04-03
  • 打赏
  • 举报
回复
请问版主,那访问呢?我该怎么执行操作?
max_min_ 2014-04-03
  • 打赏
  • 举报
回复
指针长度都是4个字节的..

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧