Qual é a diferença entre char * str = {"foo",…} e char str [] [5] = {"foo", ...} definições de matriz?
Caso 1: Quando escrevo
char*str={"what","is","this"};
entãostr[i]="newstring";
é válido enquantostr[i][j]='j';
é inválido.
Caso 2: Quando escrevo
char str[][5]={"what","is","this"};
entãostr[i]="newstring";
não é válido enquantostr[i][j]='J';
é válido.
Por que é tão? Eu sou um iniciante que já fica muito confuso depois de ler as outras respostas.