2016-03-15 43 views
-2

當我使用malloc()new分配內存時,它有時會產生運行時錯誤,如何避免這些錯誤?動態內存分配時需要注意哪些事情?

+3

也許他的問題可以幫助你:http://stackoverflow.com/questions/240212/what-is-the-difference-between-new-delete-and-malloc-free –

+0

當你使用'malloc'來分配對象的內存而不是'new',這可能會導致奇怪的錯誤(對象未初始化)。 –

回答

3

malloc(),你需要free()

你是什麼new,你需要delete

你是什麼new [],你需要delete []

任何其他組合都是未定義的行爲。

此外,newnew []實際建設中所分配的內存(這delete/delete[]調用析構函數(S)),而malloc()/free()不反對(S) - 他們只是處理內存,而不是對象。

鑑於(缺乏)給出的信息,我儘可以幫助你。