Asignación Dinámica de Structs
Revisión del proceso para asignar memoria dinámicamente en el lenguaje C.
Para asignar memoria en el heap, utilizar la función malloc() de la biblioteca stdlib.h:
<pointer> = (data_type*)malloc(n * sizeof(data_type));
Cuando se asigna memoria dinámicamente para su uso en el programa, esa memoria permanece reservada hasta que se libera explícitamente utilizando free().
main.c
12345678910111213141516171819#include <stdio.h> #include <stdlib.h> // structure definition struct Example { int someValue[20]; // int = 4 bytes, 20 * 4 = 80 bytes }; int main() { // allocating memory for Example structure struct Example* pExample = (struct Example*)malloc(sizeof(struct Example)); printf("Allocating memory = %zu bytes\n", sizeof(*pExample)); // freeing memory free(pExample); return 0; }
Si una estructura contiene varios campos de diferentes tipos de datos, el compilador igualará el tamaño de los campos para que la estructura se almacene de manera "conveniente" en la memoria.
Después de completar el trabajo, observe cuántos bytes se asignan para la estructura con los campos int y char. Este fenómeno se analizará más adelante en este curso.
Swipe to start coding
Se requiere crear una estructura Student y asignar memoria dinámicamente para ella utilizando la función malloc().
La tarea consiste en inicializar la estructura con valores de ejemplo y devolver un puntero a la misma.
Dentro de la función createStudent:
- Utilizar
malloc()para asignar memoria para una estructura Student. - Verificar si la asignación fue exitosa (en caso contrario, devolver
NULL). - Asignar un nombre predeterminado usando
sprintf(), por ejemplo,"Alice Johnson". - Asignar un valor para
age, como21. - Asignar un valor para
gpa, como3.85. - Devolver el puntero a la estructura asignada.
En la función main:
- Utilizar la función
free()para liberar la memoria asignada después de su uso.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Genial!
Completion tasa mejorada a 4.35
Asignación Dinámica de Structs
Desliza para mostrar el menú
Revisión del proceso para asignar memoria dinámicamente en el lenguaje C.
Para asignar memoria en el heap, utilizar la función malloc() de la biblioteca stdlib.h:
<pointer> = (data_type*)malloc(n * sizeof(data_type));
Cuando se asigna memoria dinámicamente para su uso en el programa, esa memoria permanece reservada hasta que se libera explícitamente utilizando free().
main.c
12345678910111213141516171819#include <stdio.h> #include <stdlib.h> // structure definition struct Example { int someValue[20]; // int = 4 bytes, 20 * 4 = 80 bytes }; int main() { // allocating memory for Example structure struct Example* pExample = (struct Example*)malloc(sizeof(struct Example)); printf("Allocating memory = %zu bytes\n", sizeof(*pExample)); // freeing memory free(pExample); return 0; }
Si una estructura contiene varios campos de diferentes tipos de datos, el compilador igualará el tamaño de los campos para que la estructura se almacene de manera "conveniente" en la memoria.
Después de completar el trabajo, observe cuántos bytes se asignan para la estructura con los campos int y char. Este fenómeno se analizará más adelante en este curso.
Swipe to start coding
Se requiere crear una estructura Student y asignar memoria dinámicamente para ella utilizando la función malloc().
La tarea consiste en inicializar la estructura con valores de ejemplo y devolver un puntero a la misma.
Dentro de la función createStudent:
- Utilizar
malloc()para asignar memoria para una estructura Student. - Verificar si la asignación fue exitosa (en caso contrario, devolver
NULL). - Asignar un nombre predeterminado usando
sprintf(), por ejemplo,"Alice Johnson". - Asignar un valor para
age, como21. - Asignar un valor para
gpa, como3.85. - Devolver el puntero a la estructura asignada.
En la función main:
- Utilizar la función
free()para liberar la memoria asignada después de su uso.
Solución
¡Gracias por tus comentarios!
single