我遇到了这个(短)代码,我不确定它到底做了什么;
int amount = 5
int totalAllocatedMemory = 0;
totalAllocatedMemory += amount, malloc(amount);
看来"malloc"在这里没有任何作用!
感谢
它确实有一个效果,因为它分配内存。然而,代码看起来确实很奇怪,内存也确实泄露了。
如果您想知道语法和确切的语义,请参阅Comma Operator如何工作
It:
- 分配5个再见
- 将5添加到
totalAllocatedMemroy
(打字错误?) - 内存泄漏
代码看起来有缺陷,但它的作用是:
- 将金额添加到AllocatedMemory总量
- 分配5个字节并丢弃结果(这将是所分配内存的地址,因此,正如其他人所说,这将导致内存泄漏)
这是因为逗号在C.中的所有运算符中具有最低的优先级