malloc的不常见使用



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

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

看来"malloc"在这里没有任何作用!

感谢

它确实有一个效果,因为它分配内存。然而,代码看起来确实很奇怪,内存也确实泄露了。

如果您想知道语法和确切的语义,请参阅Comma Operator如何工作

It:

  • 分配5个再见
  • 5添加到totalAllocatedMemroy(打字错误?)
  • 内存泄漏

代码看起来有缺陷,但它的作用是:

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

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

相关内容

  • 没有找到相关文章