I have a seg fault but I don't know why. I know it should be working but it kee telling me there is a seg fault someone has a solution? Please someone help I need to know for my BA.
#include <stdio.h>
#include <stdlib.h>
int split_allocate(const char* s, char*** word_array){
    char c;
    char tmp[100];
    int id_s,i=0, j=0,k;
    for(id_s =0 ; (c=s[id_s])!='\0' ; id_s++){
        printf("%c\n", c);
        if(c!=' ' && c!='\t' && c!='\n'){
            tmp[i]=c;
            i++;
            printf("i if : %d\n", i);
            continue;
        }
        tmp[i]='\0';
        printf("i else : %d & tmp : %s\n", i, tmp);
        (*word_array)[j] = (char*)malloc(sizeof(char)*(i+1));
        printf("666\n");
        if(NULL== (*word_array)[j]){
            return -1;
        }
        for(k=0 ; tmp[k] != '\0' ; k++){
            (*word_array)[j][k]=tmp[k];
        }
        (*word_array)[j][k+1]='\0';
        j++;
        printf("j for : %d\n", j);
        i=0;
    }
    return j;
}
int main(void) {
    char* s = "Salut,   cet examen\n a l'air long...";
    char*** word_array;
    printf("number of words :%d\n", split_allocate(s,word_array));
    return 0;
}
 
     
    