{"id":12653,"date":"2023-02-13T09:02:29","date_gmt":"2023-02-13T09:02:29","guid":{"rendered":"https:\/\/www.prepbytes.com\/blog\/?p=12653"},"modified":"2023-03-02T06:34:57","modified_gmt":"2023-03-02T06:34:57","slug":"dynamic-memory-allocation-in-c","status":"publish","type":"post","link":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/","title":{"rendered":"Dynamic Memory Allocation in C"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg\" alt=\"\" \/><\/p>\n<p>In this article, we will study about that how memory allocation takes place in c dynamically<br \/>\nFunction which are used for dynamic allocation like <strong>malloc(),calloc(),realloc(), free()<\/strong>, differences<br \/>\nbetween <strong>Static Memory Allocation  and Dynamic Memory Allocation.<\/strong><\/p>\n<h2>Dynamic Memory Allocation in C Langauge<\/h2>\n<p>In C, dynamic memory allocation refers to the process of allocating memory at runtime. So as result, this allows for the creation of data structures of variable sizes, such as arrays, linked lists, and trees. In simple words, memory can be allocated after the<br \/>\nprogram begins execution. <strong>Dynamic memory allocation<\/strong> in c is allocated from the heap using some standard library functions like  <strong>malloc(),calloc(),realloc(), and free()<\/strong> which are present in &lt;stdlib.h&gt;header<\/p>\n<h2>Difference between Static Memory Allocation and Dynamic Memory Allocation<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u00a0 Dynamic Memory Allocation<\/th>\n<th>\u00a0 \u00a0\u00a0StaticMemory Allocation<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Memory is reserved at run time and we can allocate and deallocate<\/td>\n<td>Memory is reserved at compile time and we cannot allocate and deallocate<\/td>\n<\/tr>\n<tr>\n<td>It uses heap space<\/td>\n<td>It uses stack space<\/td>\n<\/tr>\n<tr>\n<td>It is more efficient and provides reusability of memory during run time<\/td>\n<td>It is less efficient and not provide reusability of memory<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>C malloc()<\/h2>\n<p>In C, malloc is a function which is in  &lt;stdlib.h&gt; header file that is used to dynamically allocate memory at runtime. It takes a single argument, which is the number of bytes to allocate, and returns a pointer to the beginning of the allocated memory. The memory allocated by malloc is not initialized, so it contains garbage values. So it is the responsibility to initialize the memory before using it.<\/p>\n<p><strong>Note:<\/strong> If space is insufficient, allocation fails and returns a NULL pointer.<\/p>\n<h3>Syntax of Malloc():<\/h3>\n<pre><code>ptr = (castType*) malloc(size)<\/code><\/pre>\n<h3>Example of Malloc()<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775346-Dynamic%20Memory%20Allocation%20in%20C-01.png\" alt=\"\" \/><\/p>\n<h2>C calloc()<\/h2>\n<p>The C library function calloc() is used to allocate memory for an array of elements of a certain data type and initializes all bits to zero. The function takes two arguments: the number of elements in the array and the size of each element. It returns a pointer to the first byte of the allocated memory, or NULL if the request for memory could not be fulfilled.<\/p>\n<p><strong>Note:<\/strong> If space is insufficient, allocation fails and returns a NULL pointer.<\/p>\n<h3>Syntax of Calloc():<\/h3>\n<pre><code>ptr = (castType*)calloc(n, size);<\/code><\/pre>\n<p>here, \u2018size\u2019 is the size of each element, and \u2018n \u2018is the no. of elements.<\/p>\n<h3>Example of Calloc()<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775346-Dynamic%20Memory%20Allocation%20in%20C-02.png\" alt=\"\" \/><\/p>\n<h2>C free()<\/h2>\n<p>The free() function in the C programming language is used to deallocate memory that has already been allocated using the malloc(), calloc(), or realloc() functions. Releasing the memory block indicated to by the address provided to it, it makes more allocations possible. To stop memory leaks in your program, you must utilize free() on dynamically allocated memory.<\/p>\n<h3>Syntax of Free() in C:<\/h3>\n<pre><code>free(ptr);<\/code><\/pre>\n<h3>Example of free()<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775346-Dynamic%20Memory%20Allocation%20in%20C-03.png\" alt=\"\" \/><\/p>\n<h2>C realloc()<\/h2>\n<p>By the word we understand \u201crealloc\u201d which means re-allocation in C programming, the realloc() function is used to change the size of a previously allocated memory block. It takes two arguments: a pointer to the memory block that you want to resize and the new size of the memory block. If the new size is larger than the original size, the function may move the memory block to a new location in order to accommodate the increased size. If the new size is smaller than the original size, the function will truncate the memory block to the new size. The syntax for the realloc() function is as follows:<\/p>\n<h3>Syntax of realloc()<\/h3>\n<pre><code>ptr = realloc(ptr, newSize);<\/code><\/pre>\n<p>where ptr is reallocated with new size &#8216;newSize&#8217;.<\/p>\n<h3>Example of realloc() in C<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775360-Dynamic%20Memory%20Allocation%20in%20C-04.png\" alt=\"\" \/><\/p>\n<p><strong>Note:<\/strong> If space is insufficient, allocation fails and returns a NULL pointer.<\/p>\n<p><strong>Code Implementation:<\/strong><\/p>\n\t\t\t\t\t\t<style>\r\n\t\t\t\t\r\n\t\t\t\t\t#tab_container_12744 {\r\n\toverflow:hidden;\r\n\tdisplay:block;\r\n\twidth:100%;\r\n\tborder:0px solid #ddd;\r\n\tmargin-bottom:30px;\r\n\t}\r\n\r\n#tab_container_12744 .tab-content{\r\n\tpadding:20px;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n\tmargin-top: 0px;\r\n\tbackground-color:#ffffff !important;\r\n\tcolor: #000000 !important;\r\n\tfont-size:16px !important;\r\n\tfont-family: Open Sans !important;\r\n\t\r\n\t\tborder: 1px solid #e6e6e6 !important;\r\n\t}\r\n#tab_container_12744 .wpsm_nav-tabs {\r\n    border-bottom: 0px solid #ddd;\r\n}\r\n#tab_container_12744 .wpsm_nav-tabs > li.active > a, #tab_container_12744 .wpsm_nav-tabs > li.active > a:hover, #tab_container_12744 .wpsm_nav-tabs > li.active > a:focus {\r\n\tcolor: #000000 !important;\r\n\tcursor: default;\r\n\tbackground-color: #ffffff !important;\r\n\tborder: 1px solid #e6e6e6 !important;\r\n}\r\n\r\n#tab_container_12744 .wpsm_nav-tabs > li > a {\r\n    margin-right: 0px !important; \r\n    line-height: 1.42857143 !important;\r\n    border: 1px solid #d5d5d5 !important;\r\n    border-radius: 0px 0px 0 0 !important; \r\n\tbackground-color: #e8e8e8 !important;\r\n\tcolor: #000000 !important;\r\n\tpadding: 15px 18px 15px 18px !important;\r\n\ttext-decoration: none !important;\r\n\tfont-size: 14px !important;\r\n\ttext-align:center !important;\r\n\tfont-family: Open Sans !important;\r\n}\r\n#tab_container_12744 .wpsm_nav-tabs > li > a:focus {\r\noutline: 0px !important;\r\n}\r\n\r\n#tab_container_12744 .wpsm_nav-tabs > li > a:before {\r\n\tdisplay:none !important;\r\n}\r\n#tab_container_12744 .wpsm_nav-tabs > li > a:after {\r\n\tdisplay:none !important ;\r\n}\r\n#tab_container_12744 .wpsm_nav-tabs > li{\r\npadding:0px !important ;\r\nmargin:0px;\r\n}\r\n\r\n#tab_container_12744 .wpsm_nav-tabs > li > a:hover , #tab_container_12744 .wpsm_nav-tabs > li > a:focus {\r\n    color: #000000 !important;\r\n    background-color: #e8e8e8 !important;\r\n\tborder: 1px solid #d5d5d5 !important;\r\n\t\r\n}\r\n#tab_container_12744 .wpsm_nav-tabs > li > a .fa{\r\n\r\nmargin-right:5px !important;\r\n\r\nmargin-left:5px !important;\r\n\r\n\r\n}\r\n\r\n\t\t#tab_container_12744 .wpsm_nav-tabs a{\r\n\t\t\tbackground-image: none;\r\n\t\t\tbackground-position: 0 0;\r\n\t\t\tbackground-repeat: repeat-x;\r\n\t\t}\r\n\t\t\t\r\n\r\n\r\n#tab_container_12744 .wpsm_nav-tabs > li {\r\n    float: left;\r\n    margin-bottom: -1px !important;\r\n\tmargin-right:0px !important; \r\n}\r\n\r\n\r\n#tab_container_12744 .tab-content{\r\noverflow:hidden !important;\r\n}\r\n\r\n\r\n@media (min-width: 769px) {\r\n\r\n\t#tab_container_12744 .wpsm_nav-tabs > li{\r\n\t\tfloat:left !important ;\r\n\t\t\t\tmargin-right:-1px !important;\r\n\t\t\t\t\t}\r\n\t#tab_container_12744 .wpsm_nav-tabs{\r\n\t\tfloat:none !important;\r\n\t\tmargin:0px !important;\r\n\t}\r\n\r\n\t#tab_container_12744 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_12744 .wpsm_nav{\r\n\t\t\t}\r\n\r\n}\r\n\r\n\r\n\r\n@media (max-width: 768px) {\r\n\t#tab_container_12744 .wpsm_nav-tabs > li {\r\n\t\t\t\t\r\n\t}\r\n\t#tab_container_12744 .wpsm_nav{\r\n\t\t\t}\r\n}\r\n\r\n\r\n\t.wpsm_nav-tabs li:before{\r\n\t\tdisplay:none !important;\r\n\t}\r\n\r\n\t@media (max-width: 768px) {\r\n\t\t\t\t\r\n\t\t\t\t.wpsm_nav-tabs{\r\n\t\t\tmargin-left:0px !important;\r\n\t\t\tmargin-right:0px !important; \r\n\t\t\t\r\n\t\t}\r\n\t\t\t\t#tab_container_12744 .wpsm_nav-tabs > li{\r\n\t\t\tfloat:none !important;\r\n\t\t}\r\n\t\t\t\r\n\t}\t\t\t\t<\/style>\r\n\t\t\t\t<div id=\"tab_container_12744\" >\r\n\t \r\n\t\t\t\t\t<ul class=\"wpsm_nav wpsm_nav-tabs\" role=\"tablist\" id=\"myTab_12744\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t<li role=\"presentation\"  class=\"active\"  onclick=\"do_resize()\">\r\n\t\t\t\t\t\t\t\t<a href=\"#tabs_desc_12744_1\" aria-controls=\"tabs_desc_12744_1\" role=\"tab\" data-toggle=\"tab\">\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-code\"><\/i> \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t<span>C<\/span>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t\t<\/li>\r\n\t\t\t\t\t\t\t\t\t\t\t <\/ul>\r\n\r\n\t\t\t\t\t  <!-- Tab panes -->\r\n\t\t\t\t\t  <div class=\"tab-content\" id=\"tab-content_12744\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t <div role=\"tabpanel\" class=\"tab-pane  in active \" id=\"tabs_desc_12744_1\">\r\n\t\t\t\t\t\t\t\t<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\">#include &lt;stdio.h&gt;\r\n#include &lt;stdlib.h&gt;\r\n\r\nint main()\r\n{\r\n\r\n\r\n    \r\n    int* ptr,ptr1;\r\n    int n, i;\r\n\r\n\r\n    n = 7;\r\n    printf(\" number of elements are here is : %d&#92;n\", n);\r\n\r\n    \/\/ Dynamically allocate memory using calloc()\r\n    ptr = (int*)calloc(n, sizeof(int));\r\n     ptr1 = (int*)malloc(n * sizeof(int));\r\n     \/\/ dynamically allocate memory using malloc() which is not contagious \r\n     \r\n\r\n    \r\n    \/\/  checking that allocated by malloc or not\r\n    if (ptr == NULL) {\r\n        printf(\"Memory not allocated.&#92;n\");\r\n        exit(0);\r\n    }\r\n    else {\r\n\r\n        \/\/ Memory has been successfully allocated\r\n        printf(\" Successfully allocated using calloc.&#92;n\");\r\n\r\n        \/\/ Get the elements of the array\r\n        for (i = 0; i &lt; n; ++i) {\r\n            ptr[i] = i + 1;\r\n        }\r\n\r\n        \/\/ here we  Printing the elements of the array\r\n        printf(\"The elements of the array are: \");\r\n        for (i = 0; i &lt; n; ++i) {\r\n            printf(\"%d, \", ptr[i]);\r\n        }\r\n\r\n        \/\/ Get the new size for the array\r\n        n = 12;\r\n        printf(\"&#92;n&#92;nnew size of the array: %d&#92;n\", n);\r\n\r\n        \/\/ Dynamically re-allocate memory using realloc()\r\n        ptr = realloc(ptr, n * sizeof(int));\r\n\r\n        \/\/ Memory has been successfully allocated\r\n        printf(\"Memory  re-allocated using realloc.&#92;n\");\r\n\r\n        \/\/ Get the new elements of the array\r\n        for (i = 5; i &lt; n; ++i) {\r\n            ptr[i] = i + 1;\r\n        }\r\n\r\n        \/\/ Print the elements of the array\r\n        printf(\"The elements of the array are: \");\r\n        for (i = 0; i &lt; n; ++i) {\r\n            printf(\"%d, \", ptr[i]);\r\n        }\r\n\r\n        free(ptr);\r\n    }\r\n\r\n    return 0;\r\n}\r\n<\/pre>\t\t\t\t\t\t <\/div>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t <\/div>\r\n\t\t\t\t\t \r\n\t\t\t\t <\/div>\r\n <script>\r\n\t\tjQuery(function () {\r\n\t\t\tjQuery('#myTab_12744 a:first').tab('show')\r\n\t\t});\r\n\t\t\r\n\t\t\t\tjQuery(function(){\r\n\t\t\tvar b=\"fadeIn\";\r\n\t\t\tvar c;\r\n\t\t\tvar a;\r\n\t\t\td(jQuery(\"#myTab_12744 a\"),jQuery(\"#tab-content_12744\"));function d(e,f,g){\r\n\t\t\t\te.click(function(i){\r\n\t\t\t\t\ti.preventDefault();\r\n\t\t\t\t\tjQuery(this).tab(\"show\");\r\n\t\t\t\t\tvar h=jQuery(this).data(\"easein\");\r\n\t\t\t\t\tif(c){c.removeClass(a);}\r\n\t\t\t\t\tif(h){f.find(\"div.active\").addClass(\"animated \"+h);a=h;}\r\n\t\t\t\t\telse{if(g){f.find(\"div.active\").addClass(\"animated \"+g);a=g;}else{f.find(\"div.active\").addClass(\"animated \"+b);a=b;}}c=f.find(\"div.active\");\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\t\r\n\r\n\t\tfunction do_resize(){\r\n\r\n\t\t\tvar width=jQuery( '.tab-content .tab-pane iframe' ).width();\r\n\t\t\tvar height=jQuery( '.tab-content .tab-pane iframe' ).height();\r\n\r\n\t\t\tvar toggleSize = true;\r\n\t\t\tjQuery('iframe').animate({\r\n\t\t\t    width: toggleSize ? width : 640,\r\n\t\t\t    height: toggleSize ? height : 360\r\n\t\t\t  }, 250);\r\n\r\n\t\t\t  toggleSize = !toggleSize;\r\n\t\t}\r\n\r\n\r\n\t<\/script>\r\n\t\t\t\t\r\n\t\t\t\n<p><strong>Output:<\/strong><\/p>\n<pre><code>number of elements are here is : 7\n Successfully allocated using calloc.\nThe elements of the array are: 1, 2, 3, 4, 5, 6, 7\n\nnew size of the array: 12\nMemory  re-allocated using realloc.\nThe elements of the array are: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12<\/code><\/pre>\n<p><strong>Explanation:<\/strong><br \/>\nIn the above C program we create two pointer variables ptr and ptr1. Pointer ptr is of dynamically allocated memory using calloc() whose size is  7 and then we use realloc() function to increase the size from 7 to 12. ptr1 is of allocated memory which forms by using malloc(this is not contagious). we first allocate the memory and then stored the value by applying  for  loop. After that, we increase the value of n by 7 to 12 so for increasing the size of the already allocated memory block we use the realloc() function. In last we use free() function which deallocates the ptr.<\/p>\n<p><strong>Summary<\/strong><br \/>\nThe process of allocating memory at runtime as opposed to compile-time is referred to as dynamic memory allocation in the C programming language. As a result, it is possible to create data structures of variable sizes, including trees, linked lists, and arrays. the malloc() and calloc are the two main C methods for allocating memory dynamically.  the malloc() allocates a block of memory of a specified size, while calloc() allocates a block of memory for an array of elements, and realloc is used to change the size of a previously allocated memory and at last<br \/>\nfree() this function is used to deallocate memory that has already been allocated using the malloc(), calloc(), or realloc() functions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will study about that how memory allocation takes place in c dynamically Function which are used for dynamic allocation like malloc(),calloc(),realloc(), free(), differences between Static Memory Allocation and Dynamic Memory Allocation. Dynamic Memory Allocation in C Langauge In C, dynamic memory allocation refers to the process of allocating memory at runtime. [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-12653","post","type-post","status-publish","format-standard","hentry","category-c-programming"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Dynamic Memory Allocation in C : malloc(), calloc(), realloc() &amp; free() Function<\/title>\n<meta name=\"description\" content=\"malloc() and calloc are the two main C methods for allocating memory dynamically. the malloc() allocates a block of memory of a specified size, while calloc() allocates a block of memory for an array of elements.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dynamic Memory Allocation in C : malloc(), calloc(), realloc() &amp; free() Function\" \/>\n<meta property=\"og:description\" content=\"malloc() and calloc are the two main C methods for allocating memory dynamically. the malloc() allocates a block of memory of a specified size, while calloc() allocates a block of memory for an array of elements.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"PrepBytes Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prepbytes0211\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-13T09:02:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-02T06:34:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg\" \/>\n<meta name=\"author\" content=\"Prepbytes\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Prepbytes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/\"},\"author\":{\"name\":\"Prepbytes\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\"},\"headline\":\"Dynamic Memory Allocation in C\",\"datePublished\":\"2023-02-13T09:02:29+00:00\",\"dateModified\":\"2023-03-02T06:34:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/\"},\"wordCount\":817,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg\",\"articleSection\":[\"C Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/\",\"url\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/\",\"name\":\"Dynamic Memory Allocation in C : malloc(), calloc(), realloc() & free() Function\",\"isPartOf\":{\"@id\":\"http:\/\/43.205.93.38\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg\",\"datePublished\":\"2023-02-13T09:02:29+00:00\",\"dateModified\":\"2023-03-02T06:34:57+00:00\",\"description\":\"malloc() and calloc are the two main C methods for allocating memory dynamically. the malloc() allocates a block of memory of a specified size, while calloc() allocates a block of memory for an array of elements.\",\"breadcrumb\":{\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#primaryimage\",\"url\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg\",\"contentUrl\":\"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/43.205.93.38\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C Programming\",\"item\":\"https:\/\/prepbytes.com\/blog\/category\/c-programming\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Dynamic Memory Allocation in C\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/43.205.93.38\/#website\",\"url\":\"http:\/\/43.205.93.38\/\",\"name\":\"PrepBytes Blog\",\"description\":\"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING\",\"publisher\":{\"@id\":\"http:\/\/43.205.93.38\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/43.205.93.38\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/43.205.93.38\/#organization\",\"name\":\"Prepbytes\",\"url\":\"http:\/\/43.205.93.38\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"contentUrl\":\"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp\",\"width\":160,\"height\":160,\"caption\":\"Prepbytes\"},\"image\":{\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prepbytes0211\/\",\"https:\/\/www.instagram.com\/prepbytes\/\",\"https:\/\/www.linkedin.com\/company\/prepbytes\/\",\"https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e\",\"name\":\"Prepbytes\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/43.205.93.38\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g\",\"caption\":\"Prepbytes\"},\"url\":\"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dynamic Memory Allocation in C : malloc(), calloc(), realloc() & free() Function","description":"malloc() and calloc are the two main C methods for allocating memory dynamically. the malloc() allocates a block of memory of a specified size, while calloc() allocates a block of memory for an array of elements.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/","og_locale":"en_US","og_type":"article","og_title":"Dynamic Memory Allocation in C : malloc(), calloc(), realloc() & free() Function","og_description":"malloc() and calloc are the two main C methods for allocating memory dynamically. the malloc() allocates a block of memory of a specified size, while calloc() allocates a block of memory for an array of elements.","og_url":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/","og_site_name":"PrepBytes Blog","article_publisher":"https:\/\/www.facebook.com\/prepbytes0211\/","article_published_time":"2023-02-13T09:02:29+00:00","article_modified_time":"2023-03-02T06:34:57+00:00","og_image":[{"url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg","type":"","width":"","height":""}],"author":"Prepbytes","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Prepbytes","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#article","isPartOf":{"@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/"},"author":{"name":"Prepbytes","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e"},"headline":"Dynamic Memory Allocation in C","datePublished":"2023-02-13T09:02:29+00:00","dateModified":"2023-03-02T06:34:57+00:00","mainEntityOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/"},"wordCount":817,"commentCount":0,"publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg","articleSection":["C Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/","url":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/","name":"Dynamic Memory Allocation in C : malloc(), calloc(), realloc() & free() Function","isPartOf":{"@id":"http:\/\/43.205.93.38\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#primaryimage"},"image":{"@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#primaryimage"},"thumbnailUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg","datePublished":"2023-02-13T09:02:29+00:00","dateModified":"2023-03-02T06:34:57+00:00","description":"malloc() and calloc are the two main C methods for allocating memory dynamically. the malloc() allocates a block of memory of a specified size, while calloc() allocates a block of memory for an array of elements.","breadcrumb":{"@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#primaryimage","url":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg","contentUrl":"https:\/\/prepbytes-misc-images.s3.ap-south-1.amazonaws.com\/assets\/1676278775251-Dynamic%20Memory%20Allocation%20in%20C.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/prepbytes.com\/blog\/dynamic-memory-allocation-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/43.205.93.38\/"},{"@type":"ListItem","position":2,"name":"C Programming","item":"https:\/\/prepbytes.com\/blog\/category\/c-programming\/"},{"@type":"ListItem","position":3,"name":"Dynamic Memory Allocation in C"}]},{"@type":"WebSite","@id":"http:\/\/43.205.93.38\/#website","url":"http:\/\/43.205.93.38\/","name":"PrepBytes Blog","description":"ONE-STOP RESOURCE FOR EVERYTHING RELATED TO CODING","publisher":{"@id":"http:\/\/43.205.93.38\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/43.205.93.38\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/43.205.93.38\/#organization","name":"Prepbytes","url":"http:\/\/43.205.93.38\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/","url":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","contentUrl":"https:\/\/blog.prepbytes.com\/wp-content\/uploads\/2025\/07\/uzxxllgloialmn9mhwfe.webp","width":160,"height":160,"caption":"Prepbytes"},"image":{"@id":"http:\/\/43.205.93.38\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prepbytes0211\/","https:\/\/www.instagram.com\/prepbytes\/","https:\/\/www.linkedin.com\/company\/prepbytes\/","https:\/\/www.youtube.com\/channel\/UC0xGnHDrjUM1pDEK2Ka5imA"]},{"@type":"Person","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/3f7dc4ae851791d5947a7f99df363d5e","name":"Prepbytes","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/43.205.93.38\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/232042cd1a1ea0e982c96d2a2ec93fb70a8e864e00784491231e7bfe5a9e06b5?s=96&d=mm&r=g","caption":"Prepbytes"},"url":"https:\/\/prepbytes.com\/blog\/author\/gourav-jaincollegedekho-com\/"}]}},"_links":{"self":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/12653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/comments?post=12653"}],"version-history":[{"count":4,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/12653\/revisions"}],"predecessor-version":[{"id":12998,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/posts\/12653\/revisions\/12998"}],"wp:attachment":[{"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/media?parent=12653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/categories?post=12653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prepbytes.com\/blog\/wp-json\/wp\/v2\/tags?post=12653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}