Im trying to create a simple programme to add a value to a linked list. the code does compile with out errors. Im getting a segmentation fault when trying to execute the file. I tried to debug using printf statements, but I don't get any output anywhere. could someone point out what im doing wrong.
typedef struct in separate .h file, include files also in separate .h file
typedef struct      s_list
    {
        struct s_list   *next;
        void            *data;
    }                   t_list;
void    list_push_front(t_list **begin_list, void *data)
{
    t_list *l;
    l = (t_list*)malloc(sizeof(t_list));
    if(l == NULL){
        printf("No allocation");
    }
    printf("%s\n", l->data);
    l->data = data;
    l->next = *begin_list;
    *begin_list = l;
    printf("%s\n", l->data);
}
int     main(void)
{
    t_list *k;
    k = (t_list*)malloc(sizeof(t_list));
    if(k == NULL){
        printf("No allocation");
    }
    printf("allocation");
    char s[] = "Woow!";
    k->data = "Hello";
    k->next->data = NULL;
//  k->next->next->data = NULL;
    list_push_front(&k, s);
    return(0);
}
 
     
    