游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3001|回复: 9

关于memcpy的一个问题

[复制链接]

16

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
QQ
发表于 2004-7-16 17:26:00 | 显示全部楼层 |阅读模式
假定有两个变量定义如下:
UCHAR*  dest;
UCHAR*  source;
int size;

调用memcpy时有这样的情况
memcpy((void*)dest,(void*)source,size);//结果正确
memcpy(dest,source,size);//结果出错

请教一下为什么一定要有(void*)呢?

62

主题

296

帖子

302

积分

中级会员

Rank: 3Rank: 3

积分
302
QQ
发表于 2004-7-16 20:02:00 | 显示全部楼层

Re:关于memcpy的一个问题

出错是指编译器提示ERROR吧?

30

主题

276

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2004-7-16 22:43:00 | 显示全部楼层

Re:关于memcpy的一个问题

memcpy要求传入的参数就是VOID*的吧?
类型是不会被自动转化到void*的。

16

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
QQ
 楼主| 发表于 2004-7-17 11:05:00 | 显示全部楼层

Re: 关于memcpy的一个问题

编译通过
运行是黑屏,无响应(是在一个显示图片的函数中调用memcpy的)

54

主题

2917

帖子

3765

积分

论坛元老

Rank: 8Rank: 8

积分
3765
QQ
发表于 2004-7-17 14:38:00 | 显示全部楼层

Re:关于memcpy的一个问题

dest和source都是有效指针且内存都不小于size的话,决没有出错的可能!!!

20

主题

100

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2004-7-17 15:32:00 | 显示全部楼层

Re:关于memcpy的一个问题

up
确保dest!=source

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-7-17 20:01:00 | 显示全部楼层

Re:关于memcpy的一个问题

不是memcpy的问题,你在查查其他问题吧。

26

主题

417

帖子

476

积分

中级会员

总版主

Rank: 3Rank: 3

积分
476
发表于 2004-7-18 13:26:00 | 显示全部楼层

Re:关于memcpy的一个问题

假定有两个变量定义如下:
UCHAR*  dest;
UCHAR*  source;
int size;

调用memcpy时有这样的情况
memcpy((void*)dest,(void*)source,size);//结果正确
memcpy(dest,source,size);//结果出错

请教一下为什么一定要有(void*)呢?


你的size初始化了吗?

26

主题

417

帖子

476

积分

中级会员

总版主

Rank: 3Rank: 3

积分
476
发表于 2004-7-18 13:27:00 | 显示全部楼层

Re:关于memcpy的一个问题

另外, 你的dest和source是指向一个有效的内存区域吗?
sizeof( source ) >= sizeof( dest ),  否则也会出错

16

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
QQ
 楼主| 发表于 2004-7-20 18:34:00 | 显示全部楼层

Re:关于memcpy的一个问题

谢谢大家,这个问题已经得到了解决~~
是我的一个失误,~~麻烦大家了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-4 00:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表