第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

你好,請問為什么m_ctrmsg賦值后 還是空?

你好,請問為什么m_ctrmsg賦值后 還是空?

void CMessage::CreateMessage(const MSG_LOGIN& msg_login){int len = sizeof(MSG_LOGIN);if (m_ctrmsg != NULL){delete m_ctrmsg;}m_ctrmsg = new char[len];memset(m_ctrmsg,0,len);memcpy(m_ctrmsg,(char*)&msg_login,len );}msg_login復(fù)制正確 但是m_ctrmsg賦值后 還是空 看不到值
查看完整描述

1 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗 獲得超5個贊

內(nèi)存復(fù)制函數(shù)及內(nèi)存的一些思考

內(nèi)存復(fù)制函數(shù):

void *memcpy(void *pvTo,const void *pvFrom,size_t size)
{
assert((pvTO !=NULL)&&(pvFrom != NULL)); //使用斷言,防止pvTo或pvFrom為NULL

typedef char byte;
byte *pbto =(byte *)pvTo; //防止改變pvTo的地址
byte *pbfrom = (byte *)pvFrom; //防止改變pvFrom的地址

while(size-->0)
{
*pbTo++ = *pbFrom++;
}
return pbto;
}

關(guān)于內(nèi)存思考:

第一種情況:
/*
*程序崩潰
*因為getmemory并不能傳遞動態(tài)內(nèi)存,test函數(shù)中的str一直都是NULL。
*/
void getmemory(char *p)
{
p = (char *)malloc(100);
}

void test(void)
{

char *str = NULL;
getmemory(str);
strcpy(str,"hello,world"); //使程序崩潰
printf(str);
}

第二種情況:
/*
*可能是亂碼
*因為getmemory返回的是只想“棧內(nèi)存”的指針,該指針的地址不是NULL,
*但其原有的內(nèi)容已經(jīng)被清除,新內(nèi)容不可知。
*/

char *getmemory(void)
{
char p[]="hello world";
return p;
}

void test(void)
{
char *str = NULL;
str=getmemory();
// strcpy(str,"hello,world");
printf(str);
}

第三種情況:
/*
*能夠輸出hello;
*內(nèi)存泄露;
*
*/

void *getmemory(char **p,int num)
{
*p = (char *)malloc(num);
}

void test(void)
{
char *str = NULL;
getmemory(&str,100);
strcpy(str,"hello");
printf(str);
}

第四種情況:
/*
*篡改動態(tài)內(nèi)存區(qū)的內(nèi)容,后果難以預(yù)料,非常危險。因為free(str)之后,str稱為野指針,
*if(str!=NULL)語句不起作用
*/
void test(void)
{
char *str = (char *)malloc(100);
strcpy(str,"hello");
free(str);
if(str != NULL)
{
strcpy(str,"world");
printf(str);
}
}

問題:動態(tài)內(nèi)存會被自動釋放掉嗎?

void Func(void)
{
char *p = (char *)malloc(100);
}

(1)指針消亡了,并不表示它指向的內(nèi)存會被自動釋放;
(2)內(nèi)存被釋放了,并不表示指針會消亡或者稱為NULL;



查看完整回答
反對 回復(fù) 2022-03-23
  • 1 回答
  • 0 關(guān)注
  • 177 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號