C:条件内存分配

时间:2015-12-03 00:19:50

标签: c memory-management while-loop conditional

如何根据这些条件释放内存?: 如果使用的内存是<系统容量的25%,释放50%未使用的内存。

这是我的代码尝试:

main method

attempt at conditional memory free-up

1 个答案:

答案 0 :(得分:1)

您的问题似乎是

if(rand() % 1 > 0) {

rand() % 1始终为0

更改为:

if(rand() % 2 > 0) {

有一个拼写错误:

while(current = !NULL) {

更改为

while(current != NULL) {

不要忘记将next节点重新连接到循环中的前一节点,使用临时节点,例如:

  temp = current;
  while (current != NULL) {
    next = current->next;
    if (rand() % 2 > 0) {
      temp->next = next;
      free(current);
    } else {
      temp = current;
    }
    current = next;
  }