I have an array which I have to initialize into a list What I try to do
#include <stdio.h>
#include <string.h>
struct data_t 
{
    unsigned int id_;
    char name_ [50];
};
struct node_t
{
    node_t * next_;
    data_t data_;
};
void initialize(node_t **, const char **, const unsigned int);
int main()
{
    node_t * first = NULL;
    const char * data [3] = {"Alpha", "Bravo", "Charlie"};
    initialize(&first, data, 3);
    return 0;
}
void initialize(node_t ** head, const char ** data, const unsigned int n) {
    node_t * current = NULL;
    node_t * previous = NULL;
    for (size_t i = 0; i < n; i++)
    {
        current = new node_t;
        current->next_ = previous;
        current->data_.id_ = i+1;
        strcpy(current->data_.name_, data[i]);
        if (i == 1)
        {
            *head = previous;
            previous->next_ = current;
        } else {
            previous = current;
        }     
    }
};
next_ just loops and changes between 2 values. I tried many different options but nothing works. Please help.
Why is this happening?
 
     
    