這些問題都是沒有考慮到cpu和記憶體極限所引起來的。
1、記憶體不夠時,new會引起異常(至少我電腦上vs2008是直接崩潰,而不是返回null)。要返回null,如下使用:
frame_audio* frame = new(std:nothrow)frame_audio; 或者
frame_audio* frame = new(std:no throw)frame_audio();
後者會在new的同時用0初始化結構體。
寫了個demo,看看new異常的表現,記錄如下:
if(記憶體不足 -- 記憶體申請到了1.7g以上)
else if(子執行緒)
}if(使用有std::nothrow的new 或者 malloc)
}至於大型軟體中,使用沒有std::throw的new,記憶體用到500m以上,就丟擲異常的情況,沒有重現出來。希望有經驗的大牛指點一下。
mysql碰到的幾個問題
create table user username varchar 16 not null primary key,passwd char 16 not null,admin enum no yes not null 此表正確。create table user username varchar ...
開發中碰到的幾個問題
1 碰到異常 servlet.service for servlet action threw exception org.springframework.dao.invaliddataaccessapiusageexception write operations are not allowed ...
安裝kali linux 碰到的幾個問題。
1.用rufus安裝usb啟動,選擇iso模式之後,usb安裝出現 cd rom 找不到的報錯,後來選擇dd模式,製作usb,才順利安裝完成。2.安裝完後發現只有命令列,後來用startx 才進入圖形介面。3.筆記本只有wifi功能,進入介面後發現不能上網,由於是wpa2的wifi,這個版本只有iw...