I tried to create a program to add elements to a linked list. The elements consist of name and age. But it fails to add without giving me any error. Could you please show me my mistake?
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define MAX 9999
struct data {
    char name[MAX];
    int age;
    struct data *next;
};
void pushHead(struct data **head, struct data **tail, char name[], int age) {
    struct data *node = (struct data *)malloc(sizeof(struct data));
    strcpy(node->name, name);
    node->age = age;
    if (*head == NULL) {
        node = *head;
        node = *tail;
        node->next = NULL;
    } else {
        node->next = *head;
        *head = node;
    }
}
void view(struct data *head) {
    struct data *curr = head;
    if (curr == NULL)
        printf("No Data\n");
    else {
        while (curr != NULL) {
            printf("%s(%d)\n", curr->name, curr->age);
            curr = curr->next;
        }
    }
}
int main(int argc, char const *argv[]) {
    struct data *head = NULL;
    struct data *tail = NULL;
    pushHead(&head, &tail, "Felix", 19);
    view(head);
    return 0;
}
Output : No Output
My code is working when I put the head on global scope (by changing all the functions to work globally), but when I try to put the head in main scope it doesn't work.
 
     
    