Cómo crear una matriz 2 dimensional usando Malloc en la programación C

Cómo crear una matriz 2 dimensional usando Malloc en la programación C

La función malloc () se usa en la programación C para almacenar los datos en el almacenamiento de memoria dinámica. Se utiliza principalmente para la declaración dinámica de las matrices y también se utiliza para la creación de matrices bidimensionales. Las matrices bidimensionales se utilizan para trazar los valores en la forma tabular que tiene las columnas y las filas.

En este artículo, aprenderemos a crear una matriz bidimensional utilizando la función MALLOC () en la programación C.

¿Qué es una función malloc () en la programación C?

En algunos programas específicos, a menudo no podemos predecir el tamaño de una matriz. Si asignamos los valores a la matriz por nosotros mismos, entonces no se puede cambiar durante la ejecución. Esto creará problemas, ya sea que la memoria se volverá baja para la matriz o la matriz ocupará menos espacio para desperdiciar la memoria, por lo que para evitar esto, se recomienda asignar matrices dinámicamente.

En la programación C, para la asignación de memoria dinámica, se utilizan diferentes funciones. Uno de ellos es la función malloc (); Envía una solicitud al montón para un bloque de memoria específico y si el montón tiene el espacio, responde asignando el bloque de memoria solicitado a MALLOC ().

El malloc () ocupará el espacio del bloque de memoria asignado de acuerdo con la necesidad de un programa ejecutado y después de la ejecución exitosa, este espacio se puede hacer gratis utilizando la función libre ().

Cómo crear la matriz bidimensional utilizando la función MALLOC () en la programación C

Antes de la creación, considere la siguiente figura para una mejor comprensión de cómo funciona la matriz bidimensional.

En la figura anterior, podemos entender que en una matriz bidimensional, primero los elementos se solucionarán en el primer cuadro de la columna después de que se llenará esta fila correspondiente, y luego la segunda fila de la columna y continúa hasta La matriz completa se llena como los primeros elementos se colocarán en x [0] [0 [, luego x [0] [1], luego [0] [2], luego x [0] [1], [1] [ 0], y luego en.

Consideraremos el siguiente ejemplo básico de crear una matriz bidimensional utilizando el MALLOC () en la programación C. Creamos un archivo de texto, cfile.c y escriba el siguiente script en él:

#incluir
#incluir
int main ()
int fila = 5, col = 4;
int * a = (int *) malloc (fila * col * sizeof (int));
int i, j;
para (i = 0; i < row; i++)
para (j = 0; j < col; j++)
*(a + i*col + j) = i + j;
printf ("Los elementos de la matriz son: \ n");
para (i = 0; i < row; i++)
para (j = 0; j < col; j++)
printf ("%d", *(a + i *col + j));

printf ("\ n");

gratis (a);
regresar 0;

Para compilar el programa anterior, utilizaremos el compilador GCC:

$ GCC CFILE.c -o cfile

Ejecutar el cifre, cuál es el archivo compilado de cfile.c y mostrar la salida:

ps ./cfile

En el código anterior, hemos incluido las bibliotecas de stdlib.H (para asignación de memoria dinámica) y stdio.H (para la entrada y salida), luego declaramos la fila de las variables, columna, i y j. Después de la declaración, llamamos al malloc () para asignar la memoria de acuerdo con los valores de "fila" y "columna". Una vez que se asignó la memoria, simplemente usamos los dos bucles anidados para guardar los valores en la matriz, y luego usando la printf () en el bucle anidado, mostramos los valores. Al final, usamos el Free () para vaciar el espacio ocupado asignado en el montón por malloc ().

Conclusión

Las matrices bidimensionales son similares a las matrices unidimensionales, la única diferencia entre las matrices 1D y 2D es; Las matrices 2D almacenan los datos en forma tabular, y la matriz 1D almacena datos en forma de filas. Las matrices son los conceptos básicos de las estructuras de datos y pueden almacenar una gran cantidad de datos del mismo tipo de datos. En este artículo, hemos explicado la creación de la matriz bidimensional en la memoria dinámica llamando a la función malloc ().