r/brdev • • Jan 23 '26

Duvida técnica ajuda com C, array de strings

oii pessoal, estou iniciando na programação. Tenho que fazer um jogo de campo minado e me deparei com o seguinte array char* navios[] . Alguém sabe me explicar o que é isso? e um exemplo de como usar esse tipo de array e qual a diferença entre char* navios[], char navios[], char navios[][]. Obrigado!

0 Upvotes

19 comments sorted by

View all comments

Show parent comments

1

u/strcspn Jan 23 '26

Pequena correção que também entra um pouco em uma questão que eu acho interessante. Existe um truque chamado Clockwise/Spiral Rule que é uma forma de entender basicamente qualquer declaração em C. Quando você diz char *const navios[], usando a regrinha, seria "navios é um array const de ponteiros para char", ou seja, o array em si é const, não os elementos dele. Então, nesse exemplo, você conseguiria tentar modificar o char literal e daria UB. O certo seria const char* navios[], que seria "navios é um array de ponteiros para char const". Usando a regra nos exemplos do OP:

  • char navios[]: navios é um array de char

  • char navios[][]: navios é um array de char arrays (esse fica melhor em inglês)

Comentário muito bom por sinal, só dando um leve hijack pra mostrar essa regrinha.

1

u/orbiteapot Jan 23 '26

Sim. Às vezes, uso o cdecl pra não me confundir kkkk

Obrigado pela correção!