Я надеюсь, что это помогает.
1: Когда я пишу
char*str={"what","is","this"};
тогдаstr[i]="newstring";
действует тогда какstr[i][j]='j';
является недействительным.
Случай 2: Когда я пишу
char str[][5]={"what","is","this"};
тогдаstr[i]="newstring";
не действует в то время какstr[i][j]='J';
действует.
Почему это так? Я новичок, который уже очень запутался после прочтения других ответов.