使用C中的strtok()进行分段错误

cod*_*dey 2 c string strtok segmentation-fault

使用以下代码我得到分段错误strtok.我使用strtok得当吗?

int main()
{
    dummy("90:90");
    return 0;
}
int dummy(char *str)
{
    char *mm, *hh;
    int len = strlen(str), result;

    if (len <= 0 || len > 5)
    {
            return 0;
    }

    hh = strtok(str, ":");

    while(hh){
        printf("%s", hh);
        hh = strtok(NULL, ":");
    }

return result;
}
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 5

strtok修改了其参数的内容,因此无法传递字符串文字.将其更改为:

int main()
{
    char str[] = "90:90";
    dummy(str);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)