#include<stdlib.h> void *calloc(size_t size) //Alloca size byte nello heap. La memoria viene inizializzata a 0. //La funzione restituisce il puntatore alla zona di memoria allocata in caso di successo e NULL in caso di fallimento, nel qual caso errno assumerà il valore ENOMEM. void *malloc(size_t size) //Alloca size byte nello heap. La memoria non viene inizializzata. //La funzione restituisce il puntatore alla zona di memoria allocata in caso di successo e NULL in caso di fallimento, nel qual caso errno assumerà il valore ENOMEM. void *realloc(void *ptr, size_t size) //Cambia la dimensione del blocco allocato all'indirizzo ptr portandola a size. //La funzione restituisce il puntatore alla zona di memoria allocata in caso di successo e NULL in caso di fallimento, nel qual caso errno assumerà il valore ENOMEM. void free(void *ptr) //Disalloca lo spazio di memoria puntato da ptr. //La funzione non ritorna nulla e non riporta errori.
#include<stdio.h> int main() { int *ptr_one; ptr_one = (int *)malloc(sizeof(int)); if (ptr_one == 0) { printf("ERROR: Out of memory\n"); return 1; } *ptr_one = 25; printf("%d\n", *ptr_one); free(ptr_one); return 0; }
#include<stdio.h> typedef struct rec { int i; float PI; char A; }RECORD; int main() { RECORD *ptr_one; ptr_one = (RECORD *) malloc (sizeof(RECORD)); if (ptr_one != NULL) { (*ptr_one).i = 10; (*ptr_one).PI = 3.14; (*ptr_one).A = 'a'; printf("First value: %d\n",(*ptr_one).i); printf("Second value: %f\n", (*ptr_one).PI); printf("Third value: %c\n", (*ptr_one).A); free(ptr_one); } return 0; }
#include<stdio.h> struct rec { int i; float PI; char A; }; int main() { struct rec *ptr_one; ptr_one =(struct rec *) malloc (sizeof(struct rec)); ptr_one->i = 10; ptr_one->PI = 3.14; ptr_one->A = 'a'; printf("First value: %d\n", ptr_one->i); printf("Second value: %f\n", ptr_one->PI); printf("Third value: %c\n", ptr_one->A); free(ptr_one); return 0; }