我遇到了這個(短)代碼,我不確定它到底是什麼;不常見的使用malloc
int amount = 5
int totalAllocatedMemory = 0;
totalAllocatedMemory += amount, malloc(amount);
看來'malloc'在這裏沒有效果!
謝謝
我遇到了這個(短)代碼,我不確定它到底是什麼;不常見的使用malloc
int amount = 5
int totalAllocatedMemory = 0;
totalAllocatedMemory += amount, malloc(amount);
看來'malloc'在這裏沒有效果!
謝謝
它確實有效果,因爲它分配內存。但是,代碼看起來很奇怪,內存也會泄露。
如果你想知道有關語法和精確語義,看How does the Comma Operator work
除了內存永遠不會被使用,真的是一段奇怪的代碼 – Anycorn
它:
totalAllocatedMemroy
(錯字?)nitpick:逗號運算符的優先級低於+ =,因此它將5添加到'totalAllocatedMemory'而不是地址。 –
@BrankoDimitrijevic:同意。我甚至不會認爲這是一個挑剔。 –
那麼代碼看起來馬車但這裏是它的作用:
這是因爲逗號具有所有運營商在C.
確保它具有的效果的最低優先級 - 它創建了一個內存泄漏。 –
不是一個真正的問題,不具有建設性,太局部......如何決定? – tenfour
「totalAllocatedMemory」與「totalAllocatedMemroy」的名稱不同,因此它可能不會按照您的想法進行操作。此外,您在第一行後缺少分號。無論如何,它確實會泄漏內存。 –