Cómo determinar la longitud de una matriz en C

Cómo determinar la longitud de una matriz en C

C no proporciona una forma integrada de obtener el tamaño de unformación. Tienes que trabajar un poco por adelantado.

Quiero mencionar la forma más sencilla de hacerlo, primero: guardar la longitud de la matriz en una variable. A veces, la solución simple es la que mejor funciona.

En lugar de definir la matriz de esta manera:

int prices[5] = { 1, 2, 3, 4, 5 };

Usas una variable para el tamaño:

const int SIZE = 5;
int prices[SIZE] = { 1, 2, 3, 4, 5 };

Entonces, si necesita iterar la matriz usando un bucle, por ejemplo, usa esoSIZEvariable:

for (int i = 0; i < SIZE; i++) {
  printf("%u\n", prices[i]);
}

La forma de procedimiento más sencilla de obtener el valor de la longitud de una matriz es mediante el uso desizeofoperador.

Primero necesitas determinar el tamaño de la matriz. Luego debes dividirlo por el tamaño de un elemento. Funciona porque todos los elementos de la matriz tienen el mismo tipo y, como tal, el mismo tamaño.

Ejemplo:

int prices[5] = { 1, 2, 3, 4, 5 };

int size = sizeof prices / sizeof prices[0];

printf("%u", size); /* 5 */

En vez de:

int size = sizeof prices / sizeof prices[0];

también puedes usar:

int size = sizeof prices / sizeof *prices;

como elpunteroa la cadena apunta al primer elemento de la cadena.

Descarga mi gratisManual de C


Más tutoriales de clang: