tipoDeDato nombreVector[tamañoDimension1][tamañoDimension2] ...;
Un vector y una matriz son colecciones de elementos del mismo tipo. Se pueden construir matrices de cualquier dimensión. Un vector se considera una matriz unidimensional. Una matriz bidimensional es un vector de vectores, extendiéndose esta propiedad a matrices con más dimensiones.
Es necesario destacar dos propiedades de los vectores y matrices en C:
Información general sobre la creación en memoria dinámica de vectores y matrices se encuentra en uso de memoria dinámica con punteros, donde se incluye además un ejemplo de creación de matrices en memoria dinámica, ejemplos de creación de vectores en memoria dinámica se encuentran en la función malloc, el procedimiento free y en el operador sizeof.
tipo nombreVector[expresión];
Donde "expresión" representa una expresión que se
evalúa en tiempo de ejecución y determina el tamaño del vector. La única
restricción es que no se puede definir de esta forma si el vector es global o
estático (static). Sólo se pueden definir vectores dinámicos como
variables locales. Una vez creado su tamaño no puede cambiar y se
comporta a todos los efectos como un vector normal.
Advertencia: No es posible devolver en una función una
variable local de tipo vector porque desaparece cuando termina la ejecución
de la función.
La función sumaMatriz calcula la suma de los elementos de una matriz de enteros con un número variable de filas y un número fijo de columnas.
#include <stdio.h> int sumaMatriz(int m[][10], int nfilas){ int i, j, s=0; for(i=0;i<nfilas;i++) for(j=0;j<10;j++) s += m[i][j]; /* Se accede a cada elemento de la matriz */ return s; } int main(){ int i, j, tan; printf("Introduzca el número de elementos del vector\n"); scanf("%d",&tan); int v[tan]; /* Vector dinámico */ printf("Introduzca los elementos del vector\n"); for(i=0;i<tan;i++){ printf("v[%d]=",i); scanf("%d",&v[i]); } printf("El último elemento del vector es %d\n", v[tan-1]); int c[15][10]; /* Define una matriz que va desde el elemento c[0][0] al c[14][9] */ printf("Introduzca los elementos de la matriz\n"); for(i=0;i<15;i++) for(j=0;j<10;j++) { printf("c[%d][%d]=",i,j); scanf("%d",&c[i][j]); /* Se lee cada elemento de la matriz */ printf("\n"); } printf("La suma de los elementos de la matriz es %d\n", sumaMatriz(c,15)); return 0; }