亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

C++中重復調用memcpy函數,會導致內存不斷增加是怎么回事?

C++中重復調用memcpy函數,會導致內存不斷增加是怎么回事?

C++
ibeautiful 2018-11-07 10:14:39
for(int i = 0 ; i < numOfTraces ; i++){        TraceClass *trace = new TraceClass();        qDebug() << trace;        printf("ii=%d,size =%d\n",i,sizeof(TraceClass));        trace->readTraceHead(fmp);        delete trace;        trace = NULL;        fmp += 240 + 4L * samples;        progress->setValue(i+1);        qApp->processEvents(QEventLoop::ExcludeUserInputEvents);        if(progress->wasCanceled()){            inLineHashMap.clear();            xLineHashMap.clear();            return false;        }    }voidTraceClass::readTraceHead(uchar*fmp){char*s;longtemplong;shorttempshort;memcpy(&templong,fmp,4);fmp+=4;s=(char*)&templong;TraceHead.TRACENUMBERLINE=BinToLong(s);//001-004 }(1)如果把fmp +=240 + 4L * samples;注釋掉,運行程序,內存不會變化很大;(2)如果把memcpy這句話注釋掉,內存不會飆升,如果不注釋掉,內存上升很快達到G。             請了解的大神指教
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

memcpy是拷貝內存內容,不會導致內存增長;fmp未看到初始指向


查看完整回答
反對 回復 2018-11-14
  • 2 回答
  • 0 關注
  • 597 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號