https://1library.net/document/q2nlj38p-dynamic-memory-allocation-using-malloc-calloc-free-realloc.html