不常用的malloc

时间:2012-01-25 17:55:03

标签: c++ memory malloc

我遇到了这个(短)代码,我不确定它到底是做什么的;

int amount = 5
int totalAllocatedMemory = 0;
totalAllocatedMemory += amount, malloc(amount);

似乎'malloc'在这里没有效果!

由于

3 个答案:

答案 0 :(得分:3)

它确实有效,因为它分配了内存。但是,代码看起来很奇怪,内存确实泄露了。

如果您想知道语法和确切语义,请参阅How does the Comma Operator work

答案 1 :(得分:3)

有:

  • 分配5个byes
  • 5 添加到totalAllocatedMemroy(拼写错误?)
  • 泄漏记忆

答案 2 :(得分:2)

代码看起来很糟糕,但这就是它的作用:

  • 向totalAllocatedMemory添加金额
  • 分配5个字节并丢弃结果(这将是分配的内存的地址,因此正如其他人说的那样导致内存泄漏)

这是因为逗号具有C中所有运算符的最低优先级。