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_dado
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_dado
Exemplo 6
int main()
{
int vetor[2];
printf("%lu",sizeof(vetor)/sizeof(int));
return 0;
}
Saída
2
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