下面這個錯誤,我的程式在資料量太大才出現的。分析了一下,確定以前遺留**中頻繁的使用 new 生成陣列,再使用 delete 刪除。最後修改為宣告陣列(我的程式只需要乙個讀寫 buffer 區):
terminate called after throwing an instance of 'std::bad_alloc'不合理生成 malloc 的問題:what(): std::bad_alloc
aborted
*** glibc detected *** ./p_main: free(): invalid next size (fast): 0x08cec800 ***我的情況是,宣告乙個 char 指標存放資料,未能考慮末尾的 '0' , 故 free 釋放出錯:
tmpdir = (char *)malloc (strlen (dir) + 1 + 1);strcpy (tmpdir, dir);
if (tmpdir[strlen (tmpdir) - 1] != '/')
strcat (tmpdir, "/");
我的總結:執行緒中如果頻繁的使用malloc()即使正常的free(),這也是會出錯的,要不就是段錯誤,要不就是2.寫檔案的時候,千萬不要寫string 到檔案裡面去阿,要不然呀,會高絲你的。哦。我去。
日誌 非常寶貴的工作經驗
1 工作是為了讓生活過得更好,如果你的工作已經讓你感覺到影響了你的生活質量,夜不能寐,食不知味,讓你心情低迷,雖然說人要知難而上,但人生苦短,無論性別,統共就這麼幾年好日子,如果努力了還沒什麼改變,又何必和自己為難呢,想開點,放手算了。要拿得起放得下,不然你會被自己不放手的東西壓挎了。2 把人看得複...
日誌 非常寶貴的工作經驗
1 工作是為了讓生活過得更好,如果你的工作已經讓你感覺到影響了你的生活質量,夜不能寐,食不知味,讓你心情低迷,雖然說人要知難而上,但人生苦短,無論性別,統共就這麼幾年好日子,如果努力了還沒什麼改變,又何必和自己為難呢,想開點,放手算了。要拿得起放得下,不然你會被自己不放手的東西壓挎了。2 把人看得複...
工作了八年,我準備去上海了
2008年來西安,一眨眼的功夫快十年了。也是從08年開始接觸軟體這個行業,從剛開始的懵懂無知,因為進北大青鳥很長一段時間,我也不知道 軟體 到底是啥?自己想不明白給別人也講不清楚,那時候只是單純的覺得,計算機是以後發展的趨勢,我想要做遊戲,然後北大青鳥的諮詢師告訴我,你的這些願望只要來了這裡都都可以...