求助c语言中strtok的用法,关于指针的问题

写了一个分割字符串的方法,放在循环体调用出了点问题。请达人指点
inline code

void readraw(char *sentence){
    raw_t *raw = malloc(sizeof(raw) *20);
    char *q = malloc(1024);
    const char *delim = "\n";
    char *p = strtok(sentence, delim);
    while (p) {

        printf("%s\n",p);
        //printf("%s\n", p);
        p = strtok(NULL, delim);
    }
    free(q);
    free(p);
    free(raw);

}
int main(int argc, char *argv[argc]) {
    for (int i=0; i<200; i++) {
        char sentence[100] = "我\n爱\n你\n中\n国CN";
        readraw(sentence);
    }
    return 0;
}

output:



国CN




国CN
\346\210\221 //这里会有乱码



国CN




国CN
......