对于同一struct结构的两个变量,可否用memcpy()来传递值?

zteeb 2003-11-05 03:47:29
例如
struct T in,out;
//in获得数值,现在要将in中的数据全部导入out中
memcpy(&out,&in); //这样作会不会有隐患?
...全文
98 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzlouiszz 2004-03-13
  • 打赏
  • 举报
回复
我是重庆解放军通信学院计算机软件工程系的大三学生,不好意思占用楼主的空间.
我是想从事软件开发的人,希望有同路人一起走,,不知道又没有人想在一起做项目,我希望大学毕业能

直接上手(进公司),所以想有人一起和作搞点“小制作”来组成就业的砝码,现在公司看重的就是工作

经炼。
先说说我的事迹:我是从小学四年级就开始搞电脑,但太不喜欢耍游戏,就是爱好编程,从小学到高中都

在搞basic,现在在搞c,C++,希望有高手指导,和重庆或者其它地区的软件爱好者(特别是同龄人)一起共

同学习进步,一起进军IT软件业。
联系方式:E-mail:zzlouiszz@163.com
QQ:27382077
cell phone:13996365460
(最好是E-mail联系)
Leung_ 2004-03-13
  • 打赏
  • 举报
回复
假设
struct string {
int len;
char* data
}

有两个变量s1, s2
s1.data = new char[10];
strcpy(s1.data, "hello");
s1.len = strlen(s1.data);

s2.data = new char[10];
strcpy(s2.data, "world");
s2.len = strlen(s2.data);

用:
memcpy(s1, s2, sizeof(string)) // sizeof(string) = sizeof(int)+sizeof(char*) = 8
之后.
s1.data原来指向的那块内存("hello")就丢失了.

zbsohu 2004-03-13
  • 打赏
  • 举报
回复
to 月光兄:
不知有什么问题?
Leung_ 2004-03-13
  • 打赏
  • 举报
回复
如果struct 里面有pointer, 那就有问题了.
dximg 2003-11-05
  • 打赏
  • 举报
回复
struct 变量可以直接赋值,这是基本的c语法。
carbon107 2003-11-05
  • 打赏
  • 举报
回复
memcpy(&out, &in, sizeof(in));
//这样才可
hanyixin 2003-11-05
  • 打赏
  • 举报
回复

如果T的成员都是简单的数据类型例如int,就不会有什么隐患。
arfi 2003-11-05
  • 打赏
  • 举报
回复
memcpy的原型如下
void *memcpy( void *dest, const void *src, size_t count );
不要将size忘掉了
memcpy(&out, &in, sizeof(in));

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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