C语言的发生访问冲突

问题遇到的现象和发生背景

删除字符串中指定位置的字符

用代码块功能插入代码,请勿粘贴截图
int delet(char* a, int n) {
    
    int len = strlen(a);
    
    if (a[n] != '\0') {
        for (int i = n - 1; i < len; i++) {
            
            *(a + i) = *(a + i + 1);
        }
    
        *(a + len) = '\0';
        return *(a + n - 1);
    }
    else
        return 0;
}

int main()
{
    char *s="(abc))a(ac)";
delet(s, 1);
    printf("%s",s );
}
运行结果及报错内容

在调用的时候发生了这样的报错

img

请问这是什么原因导致的,以及应该怎么解决呢

char *s="(abc))a(ac)"; 这是个常量字符串,是不可以修改字符串内容的
改为
char s[] = "(abc))a(ac)";