Dynamic Memory

C dynamic memory allocation

C malloc and free

C dynamic memory allocation with malloc and free

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *arr;
    int size = 5;
    
    arr = (int*)malloc(size * sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }
    
    for (int i = 0; i < size; i++) {
        arr[i] = i * 10;
    }
    
    for (int i = 0; i < size; i++) {
        printf("arr[%d] = %d\n", i, arr[i]);
    }
    
    free(arr);
    return 0;
}
C calloc and realloc

C dynamic memory with calloc and realloc

#include <stdio.h>
#include <stdlib.h>

int main() {
    int *arr;
    int size = 3;
    
    arr = (int*)calloc(size, sizeof(int));
    if (arr == NULL) {
        printf("Memory allocation failed\n");
        return 1;
    }
    
    for (int i = 0; i < size; i++) {
        arr[i] = i + 1;
    }
    
    arr = (int*)realloc(arr, 5 * sizeof(int));
    if (arr == NULL) {
        printf("Memory reallocation failed\n");
        return 1;
    }
    
    arr[3] = 4;
    arr[4] = 5;
    
    for (int i = 0; i < 5; i++) {
        printf("arr[%d] = %d\n", i, arr[i]);
    }
    
    free(arr);
    return 0;
}