{"id":1968,"date":"2024-06-22T23:21:53","date_gmt":"2024-06-22T23:21:53","guid":{"rendered":"https:\/\/www.w3computing.com\/articles\/?p=1968"},"modified":"2024-06-22T23:22:10","modified_gmt":"2024-06-22T23:22:10","slug":"how-to-create-and-use-dynamic-arrays-in-cpp","status":"publish","type":"post","link":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/","title":{"rendered":"How to Create and Use Dynamic Arrays in C++"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Dynamic arrays are a crucial feature in C++ that allow developers to handle data structures with a size that can change during runtime. Unlike static arrays, dynamic arrays provide the flexibility needed for more complex and scalable applications. This tutorial will cover the fundamentals of creating and using dynamic arrays in C++, targeted at non-beginners who have a basic understanding of C++ programming, including pointers and memory management.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction to Dynamic Arrays<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dynamic arrays differ from static arrays in that their size is determined during runtime. This flexibility is essential for applications where the number of elements cannot be predicted beforehand. Dynamic arrays in C++ are typically managed using pointers and dynamic memory allocation functions such as <code>new<\/code> and <code>delete<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Why Use Dynamic Arrays?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Flexibility<\/strong>: Adjust the size of the array as needed.<\/li>\n\n\n\n<li><strong>Efficiency<\/strong>: Allocate only the required memory.<\/li>\n\n\n\n<li><strong>Scalability<\/strong>: Handle varying amounts of data gracefully.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">2. Memory Management in C++<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Understanding memory management is critical when working with dynamic arrays. C++ provides several mechanisms for allocating and deallocating memory:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dynamic Memory Allocation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>new<\/code> Operator<\/strong>: Allocates memory for a variable or an array.<\/li>\n\n\n\n<li><strong><code>delete<\/code> Operator<\/strong>: Deallocates memory previously allocated with <code>new<\/code>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-keyword\">int<\/span>* arr = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">int<\/span>&#91;<span class=\"hljs-number\">10<\/span>]; <span class=\"hljs-comment\">\/\/ Allocates an array of 10 integers<\/span>\n<span class=\"hljs-keyword\">delete<\/span>&#91;] arr;           <span class=\"hljs-comment\">\/\/ Deallocates the memory<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">3. Creating Dynamic Arrays<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Single-Dimensional Dynamic Arrays<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To create a single-dimensional dynamic array, use the <code>new<\/code> operator to allocate memory and the <code>delete<\/code> operator to free it.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-keyword\">int<\/span> size = <span class=\"hljs-number\">10<\/span>;\n<span class=\"hljs-keyword\">int<\/span>* dynamicArray = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">int<\/span>&#91;size];\n\n<span class=\"hljs-comment\">\/\/ Initialize the array<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; size; ++i) {\n    dynamicArray&#91;i] = i * <span class=\"hljs-number\">2<\/span>;\n}\n\n<span class=\"hljs-comment\">\/\/ Print the array<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; size; ++i) {\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; dynamicArray&#91;i] &lt;&lt; <span class=\"hljs-string\">\" \"<\/span>;\n}\n<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\n\n<span class=\"hljs-comment\">\/\/ Deallocate memory<\/span>\n<span class=\"hljs-keyword\">delete<\/span>&#91;] dynamicArray;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Multi-Dimensional Dynamic Arrays<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Creating multi-dimensional dynamic arrays involves a bit more complexity. For example, a 2D array is essentially an array of arrays.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-keyword\">int<\/span> rows = <span class=\"hljs-number\">3<\/span>, cols = <span class=\"hljs-number\">4<\/span>;\n<span class=\"hljs-keyword\">int<\/span>** dynamicArray2D = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">int<\/span>*&#91;rows];\n\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; rows; ++i) {\n    dynamicArray2D&#91;i] = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">int<\/span>&#91;cols];\n}\n\n<span class=\"hljs-comment\">\/\/ Initialize the array<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; rows; ++i) {\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> j = <span class=\"hljs-number\">0<\/span>; j &lt; cols; ++j) {\n        dynamicArray2D&#91;i]&#91;j] = i + j;\n    }\n}\n\n<span class=\"hljs-comment\">\/\/ Print the array<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; rows; ++i) {\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> j = <span class=\"hljs-number\">0<\/span>; j &lt; cols; ++j) {\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; dynamicArray2D&#91;i]&#91;j] &lt;&lt; <span class=\"hljs-string\">\" \"<\/span>;\n    }\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\n}\n\n<span class=\"hljs-comment\">\/\/ Deallocate memory<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; rows; ++i) {\n    <span class=\"hljs-keyword\">delete<\/span>&#91;] dynamicArray2D&#91;i];\n}\n<span class=\"hljs-keyword\">delete<\/span>&#91;] dynamicArray2D;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">4. Accessing and Modifying Dynamic Arrays<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Accessing and modifying elements in a dynamic array is similar to static arrays, using the subscript operator <code>[]<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\">dynamicArray&#91;<span class=\"hljs-number\">0<\/span>] = <span class=\"hljs-number\">100<\/span>;    <span class=\"hljs-comment\">\/\/ Set the first element to 100<\/span>\n<span class=\"hljs-keyword\">int<\/span> value = dynamicArray&#91;<span class=\"hljs-number\">1<\/span>]; <span class=\"hljs-comment\">\/\/ Get the second element<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For multi-dimensional arrays, use nested subscripts:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\">dynamicArray2D&#91;<span class=\"hljs-number\">1<\/span>]&#91;<span class=\"hljs-number\">2<\/span>] = <span class=\"hljs-number\">50<\/span>;  <span class=\"hljs-comment\">\/\/ Set the element at row 1, column 2 to 50<\/span>\n<span class=\"hljs-keyword\">int<\/span> value2D = dynamicArray2D&#91;<span class=\"hljs-number\">0<\/span>]&#91;<span class=\"hljs-number\">1<\/span>]; <span class=\"hljs-comment\">\/\/ Get the element at row 0, column 1<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">5. Resizing Dynamic Arrays<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Resizing a dynamic array involves creating a new array of the desired size, copying the elements from the old array to the new array, and then deallocating the old array.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example:<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-keyword\">int<\/span> newSize = <span class=\"hljs-number\">20<\/span>;\n<span class=\"hljs-keyword\">int<\/span>* newArray = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">int<\/span>&#91;newSize];\n\n<span class=\"hljs-comment\">\/\/ Copy elements from old array to new array<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; size; ++i) {\n    newArray&#91;i] = dynamicArray&#91;i];\n}\n\n<span class=\"hljs-comment\">\/\/ Initialize remaining elements<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = size; i &lt; newSize; ++i) {\n    newArray&#91;i] = <span class=\"hljs-number\">0<\/span>;\n}\n\n<span class=\"hljs-comment\">\/\/ Deallocate old array<\/span>\n<span class=\"hljs-keyword\">delete<\/span>&#91;] dynamicArray;\n\n<span class=\"hljs-comment\">\/\/ Point to the new array<\/span>\ndynamicArray = newArray;\nsize = newSize;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">For multi-dimensional arrays, the process is more complex but follows a similar pattern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Deleting Dynamic Arrays<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">To avoid memory leaks, always deallocate memory that was allocated with <code>new<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Single-Dimensional Arrays<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-keyword\">delete<\/span>&#91;] dynamicArray;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Multi-Dimensional Arrays<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; rows; ++i) {\n    <span class=\"hljs-keyword\">delete<\/span>&#91;] dynamicArray2D&#91;i];\n}\n<span class=\"hljs-keyword\">delete<\/span>&#91;] dynamicArray2D;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">7. Using <code>std::vector<\/code> for Dynamic Arrays<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The C++ Standard Library provides a powerful and convenient alternative to manually managing dynamic arrays: <code>std::vector<\/code>. Vectors handle dynamic resizing and memory management internally, making them safer and easier to use.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Usage<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;vector&gt;<\/span><\/span>\n\n<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>&gt; vec;\nvec.push_back(<span class=\"hljs-number\">10<\/span>);\nvec.push_back(<span class=\"hljs-number\">20<\/span>);\nvec.push_back(<span class=\"hljs-number\">30<\/span>);\n\n<span class=\"hljs-comment\">\/\/ Access elements<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">size_t<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; vec.size(); ++i) {\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; vec&#91;i] &lt;&lt; <span class=\"hljs-string\">\" \"<\/span>;\n}\n<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\n\n<span class=\"hljs-comment\">\/\/ Modify elements<\/span>\nvec&#91;<span class=\"hljs-number\">0<\/span>] = <span class=\"hljs-number\">100<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Resizing and Capacity<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\">vec.resize(<span class=\"hljs-number\">10<\/span>);  <span class=\"hljs-comment\">\/\/ Resize vector to hold 10 elements<\/span>\nvec.reserve(<span class=\"hljs-number\">20<\/span>); <span class=\"hljs-comment\">\/\/ Reserve space for 20 elements<\/span>\n\n<span class=\"hljs-comment\">\/\/ Access size and capacity<\/span>\n<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Size: \"<\/span> &lt;&lt; vec.size() &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\n<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Capacity: \"<\/span> &lt;&lt; vec.capacity() &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Multi-Dimensional Vectors<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Vectors can also be used to create multi-dimensional arrays.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>&gt;&gt; <span class=\"hljs-title\">vec2D<\/span><span class=\"hljs-params\">(rows, <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>&gt;(cols))<\/span><\/span>;\n\n<span class=\"hljs-comment\">\/\/ Initialize and access elements<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; rows; ++i) {\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> j = <span class=\"hljs-number\">0<\/span>; j &lt; cols; ++j) {\n        vec2D&#91;i]&#91;j] = i + j;\n    }\n}\n\n<span class=\"hljs-comment\">\/\/ Print elements<\/span>\n<span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; rows; ++i) {\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> j = <span class=\"hljs-number\">0<\/span>; j &lt; cols; ++j) {\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; vec2D&#91;i]&#91;j] &lt;&lt; <span class=\"hljs-string\">\" \"<\/span>;\n    }\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">8. Practical Examples<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Example 1: Dynamic Array for Storing Grades<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;vector&gt;<\/span><\/span>\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n    <span class=\"hljs-keyword\">int<\/span> numStudents;\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Enter the number of students: \"<\/span>;\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cin<\/span> &gt;&gt; numStudents;\n\n    <span class=\"hljs-function\"><span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">vector<\/span>&lt;<span class=\"hljs-keyword\">int<\/span>&gt; <span class=\"hljs-title\">grades<\/span><span class=\"hljs-params\">(numStudents)<\/span><\/span>;\n\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; numStudents; ++i) {\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Enter grade for student \"<\/span> &lt;&lt; i + <span class=\"hljs-number\">1<\/span> &lt;&lt; <span class=\"hljs-string\">\": \"<\/span>;\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cin<\/span> &gt;&gt; grades&#91;i];\n    }\n\n    <span class=\"hljs-keyword\">int<\/span> sum = <span class=\"hljs-number\">0<\/span>;\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> grade : grades) {\n        sum += grade;\n    }\n\n    <span class=\"hljs-keyword\">double<\/span> average = <span class=\"hljs-keyword\">static_cast<\/span>&lt;<span class=\"hljs-keyword\">double<\/span>&gt;(sum) \/ numStudents;\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Average grade: \"<\/span> &lt;&lt; average &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Example 2: Dynamic Array for Inventory Management<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;vector&gt;<\/span><\/span>\n\n<span class=\"hljs-class\"><span class=\"hljs-keyword\">struct<\/span> <span class=\"hljs-title\">Item<\/span> {<\/span>\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">string<\/span> name;\n    <span class=\"hljs-keyword\">int<\/span> quantity;\n};\n\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\n    <span class=\"hljs-keyword\">int<\/span> numItems;\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Enter the number of items: \"<\/span>;\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cin<\/span> &gt;&gt; numItems;\n\n    <span class=\"hljs-function\"><span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">vector<\/span>&lt;Item&gt; <span class=\"hljs-title\">inventory<\/span><span class=\"hljs-params\">(numItems)<\/span><\/span>;\n\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">int<\/span> i = <span class=\"hljs-number\">0<\/span>; i &lt; numItems; ++i) {\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Enter name for item \"<\/span> &lt;&lt; i + <span class=\"hljs-number\">1<\/span> &lt;&lt; <span class=\"hljs-string\">\": \"<\/span>;\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cin<\/span> &gt;&gt; inventory&#91;i].name;\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Enter quantity for item \"<\/span> &lt;&lt; i + <span class=\"hljs-number\">1<\/span> &lt;&lt; <span class=\"hljs-string\">\": \"<\/span>;\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cin<\/span> &gt;&gt; inventory&#91;i].quantity;\n    }\n\n    <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Inventory:\"<\/span> &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\n    <span class=\"hljs-keyword\">for<\/span> (<span class=\"hljs-keyword\">const<\/span> Item&amp; item : inventory) {\n        <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">cout<\/span> &lt;&lt; <span class=\"hljs-string\">\"Item: \"<\/span> &lt;&lt; item.name &lt;&lt; <span class=\"hljs-string\">\", Quantity: \"<\/span> &lt;&lt; item.quantity &lt;&lt; <span class=\"hljs-built_in\">std<\/span>::<span class=\"hljs-built_in\">endl<\/span>;\n    }\n\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">9. Best Practices and Common Pitfalls<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Best Practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Use <code>std::vector<\/code><\/strong>: Prefer <code>std::vector<\/code> over raw dynamic arrays for safety and convenience.<\/li>\n\n\n\n<li><strong>RAII<\/strong>: Follow the Resource Acquisition Is Initialization principle to manage resource lifetimes.<\/li>\n\n\n\n<li><strong>Bounds Checking<\/strong>: Ensure you do not access elements out of the array&#8217;s bounds.<\/li>\n\n\n\n<li>**<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Memory Management**: Always deallocate memory to avoid memory leaks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Common Pitfalls<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Memory Leaks<\/strong>: Forgetting to deallocate memory can lead to memory leaks.<\/li>\n\n\n\n<li><strong>Dangling Pointers<\/strong>: Accessing memory after it has been deallocated.<\/li>\n\n\n\n<li><strong>Out-of-Bounds Access<\/strong>: Accessing elements outside the allocated range.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">10. Conclusion<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Dynamic arrays are a powerful tool in C++ for managing variable-sized collections of data. While manual memory management with <code>new<\/code> and <code>delete<\/code> can be error-prone, using <code>std::vector<\/code> provides a safer and more convenient alternative. Understanding the principles and practices of dynamic arrays allows developers to create more flexible and efficient programs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dynamic arrays are a crucial feature in C++ that allow developers to handle data structures with a size that can change during runtime. Unlike static arrays, dynamic arrays provide the flexibility needed for more complex and scalable applications. This tutorial will cover the fundamentals of creating and using dynamic arrays in C++, targeted at non-beginners [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9,4],"tags":[],"class_list":["post-1968","post","type-post","status-publish","format-standard","category-cplusplus","category-programming-languages","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Create and Use Dynamic Arrays in C++<\/title>\n<meta name=\"description\" content=\"Dynamic arrays are a crucial feature in C++ that allow developers to handle data structures with a size that can change during runtime.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create and Use Dynamic Arrays in C++\" \/>\n<meta property=\"og:description\" content=\"Dynamic arrays are a crucial feature in C++ that allow developers to handle data structures with a size that can change during runtime.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-22T23:21:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-22T23:22:10+00:00\" \/>\n<meta name=\"author\" content=\"w3compadmin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"w3compadmin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-create-and-use-dynamic-arrays-in-cpp\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-create-and-use-dynamic-arrays-in-cpp\\\/\"},\"author\":{\"name\":\"w3compadmin\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\"},\"headline\":\"How to Create and Use Dynamic Arrays in C++\",\"datePublished\":\"2024-06-22T23:21:53+00:00\",\"dateModified\":\"2024-06-22T23:22:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-create-and-use-dynamic-arrays-in-cpp\\\/\"},\"wordCount\":530,\"articleSection\":[\"C++\",\"Programming Languages\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-create-and-use-dynamic-arrays-in-cpp\\\/\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-create-and-use-dynamic-arrays-in-cpp\\\/\",\"name\":\"How to Create and Use Dynamic Arrays in C++\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#website\"},\"datePublished\":\"2024-06-22T23:21:53+00:00\",\"dateModified\":\"2024-06-22T23:22:10+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\"},\"description\":\"Dynamic arrays are a crucial feature in C++ that allow developers to handle data structures with a size that can change during runtime.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-create-and-use-dynamic-arrays-in-cpp\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-create-and-use-dynamic-arrays-in-cpp\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/how-to-create-and-use-dynamic-arrays-in-cpp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Articles Home\",\"item\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programming Languages\",\"item\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/programming-languages\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Create and Use Dynamic Arrays in C++\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#website\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/\",\"name\":\"Developer Articles Hub\",\"description\":\"\",\"alternateName\":\"Developer Articles\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/#\\\/schema\\\/person\\\/a550b3e20d78bb4f79b7c6b7b53f0561\",\"name\":\"w3compadmin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"url\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"contentUrl\":\"https:\\\/\\\/www.w3computing.com\\\/articles\\\/wp-content\\\/litespeed\\\/avatar\\\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266\",\"caption\":\"w3compadmin\"},\"sameAs\":[\"http:\\\/\\\/w3computing.com\\\/articles\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Create and Use Dynamic Arrays in C++","description":"Dynamic arrays are a crucial feature in C++ that allow developers to handle data structures with a size that can change during runtime.","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:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/","og_locale":"en_US","og_type":"article","og_title":"How to Create and Use Dynamic Arrays in C++","og_description":"Dynamic arrays are a crucial feature in C++ that allow developers to handle data structures with a size that can change during runtime.","og_url":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/","article_published_time":"2024-06-22T23:21:53+00:00","article_modified_time":"2024-06-22T23:22:10+00:00","author":"w3compadmin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"w3compadmin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/#article","isPartOf":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/"},"author":{"name":"w3compadmin","@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561"},"headline":"How to Create and Use Dynamic Arrays in C++","datePublished":"2024-06-22T23:21:53+00:00","dateModified":"2024-06-22T23:22:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/"},"wordCount":530,"articleSection":["C++","Programming Languages"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/","url":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/","name":"How to Create and Use Dynamic Arrays in C++","isPartOf":{"@id":"https:\/\/www.w3computing.com\/articles\/#website"},"datePublished":"2024-06-22T23:21:53+00:00","dateModified":"2024-06-22T23:22:10+00:00","author":{"@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561"},"description":"Dynamic arrays are a crucial feature in C++ that allow developers to handle data structures with a size that can change during runtime.","breadcrumb":{"@id":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.w3computing.com\/articles\/how-to-create-and-use-dynamic-arrays-in-cpp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Articles Home","item":"https:\/\/www.w3computing.com\/articles\/"},{"@type":"ListItem","position":2,"name":"Programming Languages","item":"https:\/\/www.w3computing.com\/articles\/programming-languages\/"},{"@type":"ListItem","position":3,"name":"How to Create and Use Dynamic Arrays in C++"}]},{"@type":"WebSite","@id":"https:\/\/www.w3computing.com\/articles\/#website","url":"https:\/\/www.w3computing.com\/articles\/","name":"Developer Articles Hub","description":"","alternateName":"Developer Articles","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.w3computing.com\/articles\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.w3computing.com\/articles\/#\/schema\/person\/a550b3e20d78bb4f79b7c6b7b53f0561","name":"w3compadmin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","url":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","contentUrl":"https:\/\/www.w3computing.com\/articles\/wp-content\/litespeed\/avatar\/bd481d404e42caa2763662a3bfe825f8.jpg?ver=1780141266","caption":"w3compadmin"},"sameAs":["http:\/\/w3computing.com\/articles"]}]}},"featured_image_src":null,"featured_image_src_square":null,"author_info":{"display_name":"w3compadmin","author_link":"https:\/\/www.w3computing.com\/articles\/author\/w3compadmin\/"},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/1968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/comments?post=1968"}],"version-history":[{"count":2,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/1968\/revisions"}],"predecessor-version":[{"id":1970,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/posts\/1968\/revisions\/1970"}],"wp:attachment":[{"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/media?parent=1968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/categories?post=1968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.w3computing.com\/articles\/wp-json\/wp\/v2\/tags?post=1968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}