fun1 принимает const char * и присваивается char *
Принимая во внимание, что fun2 принимает char * и присваивается char *, что хорошо.
If you are assigning a constant pointer to a non-const pointer, this means you can modify the const pointer by using the const pointer
В этом случае, внутри fun1, если вы делаете t[0] = 'a'
, это недопустимо, потому что вы изменяете память const, поэтому компилятор предупреждает вас