WebService 記憶體洩漏原因之一

2021-04-25 16:34:30 字數 655 閱讀 4613

在除錯webservice程式時(vc++,vs2005,atl方式),呼叫後總有記憶體洩漏,剛開始以為是自己的指標分配問題,更改了多種方式沒有結果,還是msdn啊,一小段**就說明了問題。這個記憶體是atl分配的,但需要我們來管理,見紅字部分,自己清理一下就好了,真說不清是該感謝微軟還是該咒罵他,你的事兒憑什麼我來做?

ctranslatorwebservicet> *wsobj=new ctranslatorwebservicet>();

ccombstr hiresult;

ccombstr a=m_strin;

bstr *p;   

int nsize;

hresult hr = s_ok;

coinitialize(null);

hr=wsobj->getencntwowaytranslator(a,&p,&nsize);

if(failed(hr))

else

{m_strout+=m_strin+l"/r/n";

for(int i=0;iatlcleanuparray(p, nsize); //清理由webservice 生成的指標

free(p);//釋放由webservice 分配的記憶體

delete wsobj;

couninitialize();

記憶體洩漏和記憶體溢位 記憶體洩漏和記憶體溢位

記憶體洩漏 是指申請的記憶體空間使用完畢之後未 一次記憶體洩露危害可以忽略,但若一直洩漏,無論有多少記憶體,遲早都會被占用光,最終導致程式crash。因此,開發中我們要盡量避免記憶體洩漏的出現 記憶體溢位 是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用。通俗理解就是記憶體不夠用了,通常在執行大...

wxWidgets delete記憶體洩漏

定義乙個結構typedef tag struct customnode struct,再定義乙個wxarrayptrvoid m nodearray 在程式的初始化過程裡 for wxint32 i 0 i 5 i node struct ptemp new node struct ptemp a ...

PHP記憶體洩漏

如果php物件存在遞迴引用,就會出現記憶體洩漏。這個bug在php裡已經存在很久很久了,先讓我們來重現這個bug,如下 class foo class bar for i 0 i 100 i 執行以上 你會發現,記憶體使用量本應該不變才對,可實際上卻是不斷增加,unset沒有完全生效。現在的開發很多...