如:
main()
{
BYTE x[80];
f(x);}f(PBYTE pPara)
{
BYTE y[40];
...
pPara=y; //这样的赋值不能改变x的值.
}请问,怎样对BYTE数组赋值?另外,如何得到数组实际占用的数值的长度(本例中的40)。
main()
{
BYTE x[80];
f(x);}f(PBYTE pPara)
{
BYTE y[40];
...
pPara=y; //这样的赋值不能改变x的值.
}请问,怎样对BYTE数组赋值?另外,如何得到数组实际占用的数值的长度(本例中的40)。
解决方案 »
- HEAP: Free Heap block 16931b0 modified at 1693c40 after it was freed
- 新手小白问题,,帮个忙看下!
- 大图像的滚动闪烁
- MFC 提问
- 以下程序,什么意思,半天没有看明白,高手帮我。。。。
- 为什么不执行DrawItem?
- 明天就要去上一家公司去试训了!有这方面经验的请说两句!来了就有分!UP的也有!(不够我在开)
- 如何区分鼠标的单击和双击事件?急
- 请教关于映射模式的问题!
- MFC应用程序中输出一个数列
- ★★★★★csdn的xml页按照help页的说明保存后,里面的每条留言都只能显示两行,长的回复都要用鼠标向下拖动才看得到,且每次只能看两行
- 在线等待,Visual c++6.0编译时报c1033 error错
{
BYTE y[40];
...
memcpy(pPara, y, sizeof(y));
}你的两个问题都解决了,但我要告诉你的是:这段代码并不完美,而从你问这个问题可以看出,你的水平不高,所以希望你能先学习一下基础知识,然后把他改的严密一些。
长度 len = sizeof(y)/sizeof(byte) ;
这样并不正确,strcpy用于拷贝字符串,当遇到第一个0字符时终止,但此程序中用得并不是字符串,所以能拷贝多少并不一定。
他需要的是数组占用的字节数,而不是数组的长度。关于那段代码其实这样会好一点:
f(PBYTE pBuf, int nBufLen)
{
BYTE y[40];
...
if(pBuf == NULL)
{
//你的错误处理
}
else
{
int nLen = nBufLen>sizeof(y) ? sizeof(y), nBufLen;
memcpy(pBuf, y, nLen);
}
}
CopyMemory(y,pPara,40);
or
Movememory(y,pPara,40);