如:
main()
{
  BYTE x[80];
  f(x);}f(PBYTE pPara)
{
 BYTE y[40];
 ...
 pPara=y;   //这样的赋值不能改变x的值.
}请问,怎样对BYTE数组赋值?另外,如何得到数组实际占用的数值的长度(本例中的40)。

解决方案 »

  1.   

    f(PBYTE pPara)
    {
     BYTE y[40];
     ...
     memcpy(pPara, y, sizeof(y));
    }你的两个问题都解决了,但我要告诉你的是:这段代码并不完美,而从你问这个问题可以看出,你的水平不高,所以希望你能先学习一下基础知识,然后把他改的严密一些。
      

  2.   

    strcpy(pPara, y) ;
    长度 len = sizeof(y)/sizeof(byte) ;
      

  3.   

    to taoni(taoni):
    这样并不正确,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);
     }
    }
      

  4.   

    ZeroMemory(y,40);
    CopyMemory(y,pPara,40);
    or
    Movememory(y,pPara,40);