Vetores e matrizes armazenam certas quantidades de elementos. Esses elementos possuem
um tamanho em bytes. Levando isso em consideração, não podem ser confundir número
de elementos armazenados com o tamanho total do vetor.
Exemplo
int vetor[3] = {1,2,3};
No exemplo acima temos um vetor de inteiros com uma capacidade de armazenamento
de 3 elementos. Porém, cada elemento possui o tamanho de 4 bytes. Assim podemos
calcular o tamanho de um vetor como sendo:
Fórmula 1
tamanho = numero_elementos*<tamanho_tipo>
Para descobrirmos os tamanho em bytes de um vetor, utilizamos o operador sizeof que pode receber como
argumento um vetor.
Exemplo 5
#include <stdio.h>
int main()
{
int vetor[2];
printf("%lu",sizeof(vetor));
return 0;
}
Saída
8
Caso a quantidade de elementos de um vetor seja desconhecido, utilizamos a fórmula
abaixo para descobrir seu número de elementos:
Fórmula 2
capacidade = tamanho_vetor/<tamanho_tipo>
Exemplo 6
int main()
{
int vetor[2];
printf("%lu",sizeof(vetor)/sizeof(int));
return 0;
}
Saída
2
Calcular dimensões de matriz
Para trabalhar com as dimensões de uma matriz, utilizamos os o que foi discutido
sobre vetores acima e aplicamos à matrizes.
Fórmulas
tamanho = sizeof(matriz)
tamanho_tipo = sizeof(tipo_dado)
capacidade = tamanho/tamanho_tipo
<tamanho_linha> = sizeof(matriz[0])
linhas = tamanho/<tamanho_linha>
colunas = <tamanho_linha>/tamanho_tipo
Exemplo
#include
int main()
{
int vetor[2][3];
printf("tamanho matriz: %lu \n",sizeof(matriz));
printf("capacidade: %lu \n",sizeof(matriz)/sizeof(int));
printf("tamanho das linhas: %lu \n",sizeof(matriz[0]));
printf("linhas: %lu \n",sizeof(matriz)/sizeof(matriz[0]));
printf("colunas: %lu \n",sizeof(matriz[0])/sizeof(int));
return 0;
}
Saída
tamanho matriz: 24
capacidade: 6
tamanho das linhas: 12
capacidade da linha: 2
capacidade da coluna: 3