c-generic-library (несколько раз неправильно) - PullRequest
4 голосов
/ 18 апреля 2019

Навигация по коду c-generic-library Я нашел это:

#include <stdio.h>

#include "node.h"
#include "gen/access_macros.h"
#include "gen/error_macros.h"


Node *
construct_Node(size_t nlinks)
{
  Node *ptr = NULL;

  CHECK_VARA(ptr = malloc(sizeof *ptr), NULL);
  if (!(ptr->ptr = malloc(sizeof *(ptr->ptr) * nlinks))) {
    if (!(ptr->ptr = malloc(sizeof *(ptr->ptr) * nlinks))) {
      if (!(ptr->ptr = malloc(sizeof *(ptr->ptr) * nlinks))) {
        return ptr;
      }
    }
  }
  return ptr;
}

void
destruct_Node(Node * node)
{
  free(node->ptr);
  free(node);
}

В чем преимущество повторных попыток malloc 2 раза?Я имею в виду, есть ли вероятность, что malloc вернет true, если он уже дважды потерпел неудачу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...