Como posso determinar o tamanho da minha matriz em C?
Como posso determinar o tamanho da minha matriz em C?
Ou seja, o número de elementos que a matriz pode conter?
894
3
Como posso determinar o tamanho da minha matriz em C?
Ou seja, o número de elementos que a matriz pode conter?
Síntese executiva:
Resposta completa:
Para determinar o tamanho do seu array em bytes, você pode utilizar o "tamanho de". operador:
No meu computador, o ints tem 4 bytes de comprimento, portanto n é 68.
Para determinar o número de elementos da matriz, podemos dividir o tamanho total da matriz pelo tamanho do elemento da matriz. Você poderia fazer isso com o tipo, assim:
e obter a resposta adequada (68 / 4 = 17), mas se o tipo de "a" mudou você teria um bug desagradável se você esquecesse de mudar o
tamanho do(int)
também.Portanto, o divisor preferido é
sizeof(a[0])
, o tamanho do o zeroésimo elemento do conjunto.Outra vantagem é que agora você pode facilmente parametrizar o nome da matriz em uma macro e obter:
Vale a pena notar que "tamanho de" não ajuda quando se lida com um valor de array que decaiu para um ponteiro: mesmo que aponte para o início de um array, para o compilador é o mesmo que um ponteiro para um único elemento desse array. Um ponteiro não "lembra" mais nada sobre o array que foi usado para inicializá-lo.