Cómo crear una matriz usando MALLOC en la programación C

Cómo crear una matriz usando MALLOC en la programación C

En la programación C, la matriz se utiliza para almacenar una gama de valores del mismo tipo de datos y ocupa algún espacio en la memoria que puede ser estático o dinámico. El malloc es una función utilizada en la programación C para la asignación de memoria dinámica.

En este artículo, aprenderemos sobre la función Malloc para crear una matriz en la programación C.

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

La memoria dinámica se asigna al programa durante su ejecución de acuerdo con el espacio que necesita. En la memoria estática, la memoria fija se asigna al programa antes de la ejecución del programa que tiene las siguientes desventajas:

  • La matriz declarada con el tamaño fijo ocupará el tamaño fijo en la memoria del sistema
  • Si la matriz tiene valores menos que el tamaño declarado, el espacio libre será desperdiciado y no puede ser utilizado por otro programa
  • Si la matriz tiene valores más que el tamaño declarado, el programa puede dar errores

Para evitar estas desventajas, utilizaremos el esquema de asignación de memoria dinámica, ya que este esquema asignará la memoria del bloque que necesita el programa durante su ejecución. La memoria dinámica tiene diferentes funciones utilizadas como puntero al programa.

La función malloc () significa "asignación de memoria" y se utiliza para la asignación de memoria dinámica mientras la ejecución del programa. Cuando se llama a la función malloc (), envía una solicitud de un bloque de memoria al montón (es un segmento de memoria donde la memoria se asigna al azar). Si el montón tiene memoria equivalente a ese bloque de memoria, aceptará la solicitud y asignará ese tamaño a la función malloc () en su solicitud, y si no tiene memoria, devolverá el valor nulo. Cuando terminemos con el bloque de memoria, podemos borrarlo utilizando la función Free () para que el bloque de memoria pueda liberarse y ser utilizado por las otras instrucciones del programa. Para la asignación de memoria dinámica, tenemos que incluir el "stdlib.H ”en los archivos de encabezado y la sintaxis general de usar la función MALLOC es:

1
$ Pointer = (Casttype*) malloc (tamaño);

Podemos usar cualquier variable en lugar de "puntero", entonces podemos reemplazar el "Casttype" con el tipo de datos cuyos valores van a almacenar en la matriz. Luego use la función malloc () y mencione el tamaño de la memoria que necesitamos.

Cómo usar la función MALLOC en la programación C para crear una matriz

Para una mejor comprensión de la creación de una matriz utilizando la función malloc (), crearemos un programa. Para usar la programación C en Linux, tenemos que instalar el compilador GCC usando el comando:

1
$ sudo apt install gcc

Cree un archivo de texto utilizando el editor nano:

1
$ nano myfile.C

Escriba el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
21
22
23
24
25
26
27
# incluir # incluir
int main (nulo)

int tamaño, i, *my_array;
printf ("\ n Por favor escriba el tamaño de la matriz:");
scanf ("%d" y tamaño);
my_array = (int *) malloc (size * sizeof (int));
printf ("\ n Ingrese los valores de la matriz:");
para (i = 0; iscanf ("%d", y my_array [i]);
printf ("\ n Los valores en la matriz son:");
para (i = 0; iprintf ("%d", my_array [i]);
printf ("\ n");

Guarde el guión con el nombre de "myfile.C ”usando el Ctrl+S y luego salga del editor presionando Ctrl+X. Después de guardarlo, compile el código y verifique si hay algún error o no usando el comando:

1
$ GCC myfile.c -o myfile

El "myfile" será un archivo ejecutable, ejecute "myfile" usando el comando:

1
ps ./mi archivo

El programa fue ejecutado con éxito. La explicación del código anterior es como:

  • Incluimos las bibliotecas de C que son stdlib.H para la asignación de memoria dinámica y stdio.H para otras funciones como printf y escaneo
  • Inicializamos el cuerpo principal del programa con Void porque la función no va a devolver un valor
  • Declaramos dos variables tamaño, yo, y un puntero "*my_array"
  • Simplemente usé el printf comandar para imprimir el "Ingrese el tamaño de la matriz"Y guardó la entrada del usuario en variable"tamaño"
  • Luego, utilizando la función MALLOC, solicitó el montón para asignar memoria de acuerdo con el valor almacenado en el "tamaño"Variable y asignado la memoria a la matriz
  • Pidió al usuario que ingrese los valores de la matriz y los almacene en una matriz usando el bucle for -bucle
  • Finalmente, imprimió todos los valores de my_array Usando el bucle for

Conclusión

La función malloc () se usa en la asignación de memoria dinámica y también se puede usar para almacenar valores en la matriz. En este artículo, hemos discutido cómo declarar y usar la matriz usando la función MALLOC (). Se recomienda el enfoque de asignación de memoria dinámica cuando desea cambiar el tamaño de una matriz durante la ejecución del programa.