c 工作寶貴經驗呀,我去。。。。

2021-07-14 17:52:51 字數 719 閱讀 5586

下面這個錯誤,我的程式在資料量太大才出現的。分析了一下,確定以前遺留**中頻繁的使用 new 生成陣列,再使用 delete 刪除。最後修改為宣告陣列(我的程式只需要乙個讀寫 buffer 區):

terminate called after throwing an instance of 'std::bad_alloc'

what(): std::bad_alloc

aborted

不合理生成 malloc 的問題:

*** 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年開始接觸軟體這個行業,從剛開始的懵懂無知,因為進北大青鳥很長一段時間,我也不知道 軟體 到底是啥?自己想不明白給別人也講不清楚,那時候只是單純的覺得,計算機是以後發展的趨勢,我想要做遊戲,然後北大青鳥的諮詢師告訴我,你的這些願望只要來了這裡都都可以...