为了账号安全,请及时绑定邮箱和手机立即绑定

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 关注
  • 578 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信