const BYTE CGameLogic::m_cbCardData[108]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D, //方塊 A - K0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D, //梅花 A - K0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D, //紅桃 A - K0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D, //黑桃 A - K0x4E,0x4F,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D, //方塊 A - K0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D, //梅花 A - K0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D, //紅桃 A - K0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D, //黑桃 A - K0x4E,0x4F,}//混亂撲克VOID RandCardList(BYTE cbCardBuffer[], BYTE cbBufferCount){//混亂準(zhǔn)備BYTE cbCardData[CountArray(m_cbCardData)];CopyMemory(cbCardData,m_cbCardData,sizeof(m_cbCardData));//混亂撲克BYTE cbRandCount=0,cbPosition=0;do{cbPosition=rand()%(cbBufferCount-cbRandCount);cbCardBuffer[cbRandCount++]=cbCardData[cbPosition];cbCardData[cbPosition]=cbCardData[cbBufferCount-cbRandCount];} while (cbRandCount<cbBufferCount);return;}BYTE cbRandCard[108];BYTE m_cbHandCardData[4][27];RandCardList(cbRandCard,CountArray(cbRandCard));for (WORD i=0;i<4;i++){m_cbHandCardCount[i]=MAX_COUNT;CopyMemory(&m_cbHandCardData[i],&cbRandCard[i*m_cbHandCardCount[i]],sizeof(BYTE)*m_cbHandCardCount[i]);}哪位C++高手能詳細(xì)分析一下CopyMemory()函數(shù)是怎樣把數(shù)組cbRandCard[]的內(nèi)容復(fù)制到m_cbHandCardData[]數(shù)組中的,當(dāng)i=0時,m_cbHandCardData[0][14]的所有元素不都為0嗎?可是我不是想知道函數(shù)CopyMemory()的作用,我是想知道當(dāng)i=0,1,2,3,時cbRandCard[i*m_cbHandCardCount[i]以及m_cbHandCardData[i]的變化情況
1 回答

哈士奇WWW
TA貢獻(xiàn)1799條經(jīng)驗 獲得超6個贊
CopyMemory(cbCardData,m_cbCardData,sizeof(m_cbCardData));
意思就是將數(shù)據(jù)從m_cbCardData復(fù)制到cbCardData中,數(shù)據(jù)量為m_cbCardData所占的空間大小。
您說的那個循環(huán)里面它會COPY到目標(biāo)數(shù)組中MAX_COUNT個字節(jié)的數(shù)據(jù),不過貌似這個代碼不全,所以MAX_COUNT我也就無從知曉了:)
添加回答
舉報
0/150
提交
取消