返回信息流假设我定义一个结构体
struct Test
{
char a[4];
int b;
int c;
};
TEST A;
char d[100];
A.a[0]='A';
A.a[1]='B';
A.a[2]='C';
A.a[3]='D';
A.b=1;
A.c=2;
怎么操作才能把strcut A里面的成员变量复制到d呢?
多谢了。。
这是一条镜像帖。来源:北邮人论坛 / cpp / #44171同步于 2010/9/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于自定义struct转char*的问题
cl233
2010/9/21镜像同步20 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 zwp 的大作中提到: 】
: memcpy吧,还有字节对齐的问题。
: --
: 在黄埔@负师长和闻鸡起午的密切配合下,本局升了17级,打过了A ,系统特此证明,恭喜恭喜。
: ...................
对齐这个,确实。。修改了下。。
不过memcpy的话是不是可能会丢掉某些字符呢?
如果我
char *d=(char *)&A;
这样成么?
【 在 cl233 的大作中提到: 】
: 对齐这个,确实。。修改了下。。
: 不过memcpy的话是不是可能会丢掉某些字符呢?
: 如果我
: ...................
memcpy为什么会丢掉某些字符呢,内存拷贝嘛。
你的好像编译通过不了吧。
【 在 zwp 的大作中提到: 】
:
: 【 在 cl233 的大作中提到: 】
: : 对齐这个,确实。。修改了下。。
: ...................
恩,编译通不过,貌似是char d[100]这里。。
改成
char *d=new char[100]
最后 free(d)
我觉得应该就行了。。没测试。。
我用strcpy的时候就不行,memcpy和strcpy应该差不多吧?
【 在 cl233 的大作中提到: 】
: 恩,编译通不过,貌似是char d[100]这里。。
: 改成
: char *d=new char[100]
: ...................
呵呵,首先new和free搭配就有点别扭。其次,你改变了d的指针的指向,到时候内存泄露了。
memcpy是内存拷贝,拷贝多少要传参进去。strcpy是字符串拷贝,碰到0就停止拷贝。
【 在 zwp 的大作中提到: 】
:
: 【 在 cl233 的大作中提到: 】
: : 恩,编译通不过,貌似是char d[100]这里。。
: ...................
恩,受教了。。先谢过了。。不过能不能稍微说下改变d的指针这个是什么意思呢?
另外再麻烦问下,我怎么才能把包含0的string打印出来呢?
含0也叫string吗
【 在 cl233 (潜龙5用) 的大作中提到: 】
: 恩,受教了。。先谢过了。。不过能不能稍微说下改变d的指针这个是什么意思呢?
: 另外再麻烦问下,我怎么才能把包含0的string打印出来呢?