dplyr с 0,4 реализовал все те объединения, в том числе external_join, но стоит отметить, что для первых нескольких релизов он использовал не для того, чтобы предлагать внешний_join, и в результате было много действительно плохой взломанный обходной код пользователя, плавающий вокруг (вы все еще можете найти это в ответах SO и Kaggle с того периода).
Основные моменты выделения :
v0.1.3 (4/2014)
Обходные решения для комментариев хайли в этой проблеме:
Установка tail = tail->next
устанавливает tail в null, потому что он не устанавливается в первый раз, а затем и tail, и head сразу же перезаписываются при следующем вызове.
Здесь есть некоторые проблемы. Во-первых, чтобы решить вашу проблему, замените две последние строки на:
tail = tail->next = newNode;
Кроме того, учтите это:
tail = tail->next;
tail = newNode;
Какой смысл назначать переменную значению, если вы переназначить эту же переменную в следующем операторе? Ранее у вас тоже была та же ошибка:
newNode->p = malloc(sizeof(struct process));
newNode->p = newProcess;
Из-за второй строки единственное, чего вы добиваетесь в первой строке - это утечка памяти. Удалите первую строку полностью.