Alocando Structs Dinamicamente
Vamos revisar como alocar memória dinamicamente na linguagem C.
Para alocar memória na heap, utilize a função malloc() da biblioteca stdlib.h:
<pointer> = (data_type*)malloc(n * sizeof(data_type));
Quando você aloca memória dinamicamente para uso em seu programa, essa memória permanece reservada até que seja explicitamente liberada usando 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; }
Se uma estrutura contiver vários campos de diferentes tipos de dados, o compilador irá equalizar o tamanho dos campos para que a estrutura seja armazenada de forma "conveniente" na memória.
Após a conclusão da tarefa, observe quantos bytes são alocados para a estrutura com os campos int e char. Esse fenômeno será discutido posteriormente neste curso.
Swipe to start coding
Você precisa criar uma estrutura Student e alocar dinamicamente memória para ela usando a função malloc().
Sua tarefa é inicializar a estrutura com valores de exemplo e retornar um ponteiro para ela.
Dentro da função createStudent:
- Utilize
malloc()para alocar memória para uma estrutura Student. - Verifique se a alocação foi bem-sucedida (caso contrário, retorne
NULL). - Atribua um nome padrão usando
sprintf()— por exemplo,"Alice Johnson". - Atribua um valor para
age, como21. - Atribua um valor para
gpa, como3.85. - Retorne o ponteiro para a estrutura alocada.
Na função main:
- Utilize a função
free()para liberar a memória alocada após o uso.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 4.35
Alocando Structs Dinamicamente
Deslize para mostrar o menu
Vamos revisar como alocar memória dinamicamente na linguagem C.
Para alocar memória na heap, utilize a função malloc() da biblioteca stdlib.h:
<pointer> = (data_type*)malloc(n * sizeof(data_type));
Quando você aloca memória dinamicamente para uso em seu programa, essa memória permanece reservada até que seja explicitamente liberada usando 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; }
Se uma estrutura contiver vários campos de diferentes tipos de dados, o compilador irá equalizar o tamanho dos campos para que a estrutura seja armazenada de forma "conveniente" na memória.
Após a conclusão da tarefa, observe quantos bytes são alocados para a estrutura com os campos int e char. Esse fenômeno será discutido posteriormente neste curso.
Swipe to start coding
Você precisa criar uma estrutura Student e alocar dinamicamente memória para ela usando a função malloc().
Sua tarefa é inicializar a estrutura com valores de exemplo e retornar um ponteiro para ela.
Dentro da função createStudent:
- Utilize
malloc()para alocar memória para uma estrutura Student. - Verifique se a alocação foi bem-sucedida (caso contrário, retorne
NULL). - Atribua um nome padrão usando
sprintf()— por exemplo,"Alice Johnson". - Atribua um valor para
age, como21. - Atribua um valor para
gpa, como3.85. - Retorne o ponteiro para a estrutura alocada.
Na função main:
- Utilize a função
free()para liberar a memória alocada após o uso.
Solução
Obrigado pelo seu feedback!
single