memcpy 第2个参数使用常数,怎么进行类型转换

silencenet 2011-11-24 10:17:37

memcpy(lpAddr,12345,4); //12345非内存地址

//需要实现的是将 12345这个数值,写入lpAddr地址中,
//不能另外申明变量
//也不能在第2个参数中借用lpAddr这个变量
//在12345这个前面要用什么符号进行转换才能实现呢??
...全文
338 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gameslq 2011-11-24
  • 打赏
  • 举报
回复
是 memcpy(lpAddr,"\x01\x02\x03\x04",4);
gameslq 2011-11-24
  • 打赏
  • 举报
回复
不借助特殊手段,可以这样
memcpy(t,"\x01\x02\x03\x04",4);
yuucyf 2011-11-24
  • 打赏
  • 举报
回复
测试出来玩玩.

//int hiByte = HIBYTE(12345);
//int loByte = LOBYTE(12345);
memcpy(lpAddr, (const int*)("90"), sizeof(int)/2);

silencenet 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wltg2001 的回复:]
//在12345这个前面要用什么符号进行转换才能实现呢??
============
12345是常量,怎么转啊?
[/Quote]
我记得好像有转法的,应该没记错的啊 -.-
那如果把12345换成 一个函数名,我需要把这个函数地址写进去呢? 那有办法吗?

memcpy(&dwVal,testfun,4); //testfun是函数名,如果想要把testfun的函数地址写进dwVal中去,可以转吗?
也仅限使用memcpy
wltg2001 2011-11-24
  • 打赏
  • 举报
回复
//在12345这个前面要用什么符号进行转换才能实现呢??
============
12345是常量,怎么转啊?
silencenet 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lazy_2010 的回复:]
*(int *)lpAddr = 12345;
[/Quote]
不可以的,这里的代码仅供参考,不能直接使用指针读写,一定要使用memcpy
lazy_2010 2011-11-24
  • 打赏
  • 举报
回复
*(int *)lpAddr = 12345;
silencenet 2011-11-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 leegoex 的回复:]
sprintf((char*)lpAddr, "%d", 12345);
[/Quote]
这个不可以的,仅限memcpy,再者说你这个是不同的,你这放的是字符串,我需要的是值。
leegoex 2011-11-24
  • 打赏
  • 举报
回复
sprintf((char*)lpAddr, "%d", 12345);

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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