{"id":6646,"date":"2023-11-27T14:06:17","date_gmt":"2023-11-27T20:06:17","guid":{"rendered":"https:\/\/www.logikalsolutions.com\/wordpress\/?p=6646"},"modified":"2023-11-27T17:24:42","modified_gmt":"2023-11-27T23:24:42","slug":"arrays-and-pointers","status":"publish","type":"post","link":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/","title":{"rendered":"C++ Arrays and Pointers Example"},"content":{"rendered":"\n<p>C++ arrays and pointers really originate with the C programming language. There have been massive improvements since the 1980s. Back then declaring arrays of structures was a bit iffy. Much of that had to do with the Stack vs. Near Heap vs. Far Heap issues of memory segmentation and &#8220;bytes allocated for alignment.&#8221; Refer to the <a href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/a-stdvector-example-and-explaination\/\" target=\"_blank\" rel=\"noreferrer noopener\">std::vector post<\/a> for further information on that.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Code<\/h2>\n\n\n\n<p>We have a lot to talk about with this short example. We are going to dynamically allocate an array, fill it with prime numbers, then print it out. Our main() will do almost nothing.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/*  ArraysAndPointersExample\n *\n *  Never use auto in production code!!!\n *\/\n\n\/\/ globals before locals\n\/\/\n#include &lt;iostream&gt;\n#include &lt;iomanip&gt;\n#include &lt;cmath&gt;\n#include &lt;cstdlib&gt;\n\n#include &quot;config.h&quot;\n\nunsigned long * allocateAndFill( size_t max);\nvoid reportPrimes( size_t max, unsigned long *primes);\n\nint main(int argc, char **argv) {\n\tstd::cout &lt;&lt; &quot;ArraysAndPointersExample&quot; &lt;&lt; std::endl;\n\tstd::cout &lt;&lt; &quot;Version &quot; &lt;&lt; ArraysAndPointersExample_VERSION_MAJOR &lt;&lt; &quot;.&quot; &lt;&lt; ArraysAndPointersExample_VERSION_MINOR &lt;&lt; std::endl;\n\n\tsize_t max {};\n\n\tstd::cout &lt;&lt; &quot;How many primes would you like to find? &quot;;\n\tstd::cin &gt;&gt; max;\n\n\tif (max &gt; 0)\n\t{\n\t\tunsigned long *primes = allocateAndFill( max);\n\n\t\treportPrimes( max, primes);\n\n\t\tdelete[] primes;\t\t\/\/ don't forget to clean up\n\t\t\t\t\t\t\t\t\/\/ thanks to standard changes this works even\n\t\t\t\t\t\t\t\t\/\/ if primes is a nullptr.\n\n\t\tprimes = nullptr;\t\t\/\/ just to be polite\n\t}\n\n\t\/*\n\t * Tiny x86 minds have a bad habit of hard coding 0. I've done it myself.\n\t * This is an extremely bad practice which shreds portability.  OpenVMS\n\t * interprets the low-order bits of $STATUS (found in $SEVERITY) like so:\n\t *\n\t * 0 = Warning (&quot;%facility-W-mnemonic, message text&quot;)\n\t * 1 = Success (No message by default)\n\t * 2 = Error (&quot;%facility-E-mnemonic, message text&quot;)\n\t * 3 = Informational (&quot;%facility-I-mnemonic, message text&quot;)\n\t * 4 = Severe (Fatal) Error (&quot;%facility-F-mnemonic, message text&quot;)\n\t *\n\t * Read this book\n\t * https:\/\/www.theminimumyouneedtoknow.com\/app_book.html\n\t * for more information on that.\n\t *\n\t * Many other real computer platforms encode the bits in other ways so a\n\t * return value may have a wide range of &quot;success&quot; values that can codify\n\t * the level of success.\n\t *\n\t * On OpenVMS EXIT_SUCCESS typically gets mapped to SS$_NORMAL.\n\t *\n\t * Note the (). Many people don't use them (myself included) but\n\t * return is a function.\n\t *\/\n\treturn (EXIT_SUCCESS);\n}\n\nunsigned long * allocateAndFill( size_t max)\n{\n\t\/*\n\t * Unlike a declared array this will not go away when we\n\t * exit the function. Anything you &quot;new&quot; you must delete yourself.\n\t * Note that we allocate this array in a called function and delete\n\t * it in the main.\n\t *\/\n\tunsigned long *primes {new unsigned long[max]};\n\n\tsize_t count {1};\t\t\/\/ count of primes found\n\tprimes[0] = 2;\t\t\t\/\/ first prime\n\n\tunsigned long trial {primes[0]+1};\n\n\twhile (count &lt; max )\n\t{\n\t\tbool isPrime {true};\n\n\t\t\/*\n\t\t * bit of a cheat here. Stops us from running through entire list.\n\t\t * mathematically, if the value we are dividing by with modulus\n\t\t * gets up to the integer of the square root we can stop. Nothing larger\n\t\t * could be an even division.\n\t\t *\/\n\t\tconst unsigned long limit = static_cast&lt;unsigned long&gt;(std::sqrt(trial));\n\t\tfor (size_t i {}; primes[i] &lt;= limit &amp;&amp; isPrime; ++i)\n\t\t{\n\t\t\tisPrime = trial % primes[i] &gt; 0;\t\/\/ False for exact division\n\t\t}\n\n\t\tif (isPrime)\n\t\t{\n\t\t\tprimes[count++] = trial;\n\t\t}\n\n\t\ttrial += 2;\t\t\/\/ this is a cheat. It works because we pre-load 2\n\t\t\t\t\t\t\/\/ and our first trial is 3. If you set the trial to\n\t\t\t\t\t\t\/\/ the first prime value in the list (2) this code\n\t\t\t\t\t\t\/\/ would never find another.\n\t}\n\n\treturn (primes);\n}\n\n\/\/\toutput 10 to a line\nvoid reportPrimes( size_t max, unsigned long *primes)\n{\n\tconst size_t PER_LINE = 10;\n\tconst size_t PRINT_WIDTH = 10;\n\n\tfor (size_t i {}; i &lt; max; ++i)\n\t{\n\t\tstd::cout &lt;&lt; std::setw(PRINT_WIDTH) &lt;&lt; primes[i];\n\t\tif ((i+1) % PER_LINE == 0)\n\t\t{\n\t\t\tstd::cout &lt;&lt; std::endl;\n\t\t}\n\t}\n\tstd::cout &lt;&lt; std::endl;\n}\n\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\/*  ArraysAndPointersExample<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"> *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"> *  Never use auto in production code!!!<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"> *\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\/\/ globals before locals<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\">iostream<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\">iomanip<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\">cmath<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\">cstdlib<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">config.h<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">unsigned long <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">allocateAndFill<\/span><span style=\"color: #BABED8\">( size_t max)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">void<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">reportPrimes<\/span><span style=\"color: #BABED8\">( size_t max<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #BABED8\"> unsigned long <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\">primes)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">int <\/span><span style=\"color: #82AAFF\">main<\/span><span style=\"color: #BABED8\">(int argc<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #BABED8\"> char <\/span><span style=\"color: #89DDFF\">**<\/span><span style=\"color: #BABED8\">argv) <\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cout<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">ArraysAndPointersExample<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">endl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cout<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Version <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">ArraysAndPointersExample_VERSION_MAJOR<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">.<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">ArraysAndPointersExample_VERSION_MINOR<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">endl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #BABED8\">size_t<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">max<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">{};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cout<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">How many primes would you like to find? <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cin<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&gt;&gt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">max<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #F07178\"> (<\/span><span style=\"color: #BABED8\">max<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #F07178\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #BABED8\">unsigned<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">long<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #82AAFF\">allocateAndFill<\/span><span style=\"color: #F07178\">( <\/span><span style=\"color: #BABED8\">max<\/span><span style=\"color: #F07178\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #82AAFF\">reportPrimes<\/span><span style=\"color: #F07178\">( <\/span><span style=\"color: #BABED8\">max<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">delete<\/span><span style=\"color: #F07178\">[] <\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ don&#39;t forget to clean up<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">\t\t\t\t\t\t\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ thanks to standard changes this works even<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">\t\t\t\t\t\t\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ if primes is a nullptr.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">nullptr<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ just to be polite<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * Tiny x86 minds have a bad habit of hard coding 0. I&#39;ve done it myself.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * This is an extremely bad practice which shreds portability.  OpenVMS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * interprets the low-order bits of $STATUS (found in $SEVERITY) like so:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * 0 = Warning (&quot;%facility-W-mnemonic, message text&quot;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * 1 = Success (No message by default)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * 2 = Error (&quot;%facility-E-mnemonic, message text&quot;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * 3 = Informational (&quot;%facility-I-mnemonic, message text&quot;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * 4 = Severe (Fatal) Error (&quot;%facility-F-mnemonic, message text&quot;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * Read this book<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * https:\/\/www.theminimumyouneedtoknow.com\/app_book.html<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * for more information on that.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * Many other real computer platforms encode the bits in other ways so a<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * return value may have a wide range of &quot;success&quot; values that can codify<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * the level of success.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * On OpenVMS EXIT_SUCCESS typically gets mapped to SS$_NORMAL.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * Note the (). Many people don&#39;t use them (myself included) but<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * return is a function.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #F07178\"> (<\/span><span style=\"color: #BABED8\">EXIT_SUCCESS<\/span><span style=\"color: #F07178\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">unsigned long <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">allocateAndFill<\/span><span style=\"color: #BABED8\">( size_t max)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * Unlike a declared array this will not go away when we<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * exit the function. Anything you &quot;new&quot; you must delete yourself.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * Note that we allocate this array in a called function and delete<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t * it in the main.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #BABED8\">unsigned<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">long<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">{new<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">unsigned<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">long<\/span><span style=\"color: #F07178\">[<\/span><span style=\"color: #BABED8\">max<\/span><span style=\"color: #F07178\">]<\/span><span style=\"color: #89DDFF\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #BABED8\">size_t<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">count<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">};<\/span><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ count of primes found<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\">[<\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #F07178\">] <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #F07178\">\t\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ first prime<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #BABED8\">unsigned<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">long<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">trial<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\">[<\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #F07178\">]<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">while<\/span><span style=\"color: #F07178\"> (<\/span><span style=\"color: #BABED8\">count<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">max<\/span><span style=\"color: #F07178\"> )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #BABED8\">bool<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">isPrime<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #FF9CAC\">true<\/span><span style=\"color: #89DDFF\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\t * bit of a cheat here. Stops us from running through entire list.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\t * mathematically, if the value we are dividing by with modulus<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\t * gets up to the integer of the square root we can stop. Nothing larger<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\t * could be an even division.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\t\t *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #C792EA\">const<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">unsigned<\/span><span style=\"color: #F07178\"> long limit <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">static_cast<\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #FFCB6B\">unsigned<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #FFCB6B\">long<\/span><span style=\"color: #89DDFF\">&gt;(<\/span><span style=\"color: #BABED8; font-style: italic\">std<\/span><span style=\"color: #89DDFF\">::<\/span><span style=\"color: #FFCB6B\">sqrt<\/span><span style=\"color: #F07178\">(<\/span><span style=\"color: #FFCB6B\">trial<\/span><span style=\"color: #F07178\">)<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #F07178\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\tfor <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #BABED8; font-style: italic\">size_t<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8; font-style: italic\">i<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">{}<\/span><span style=\"color: #F07178\">; <\/span><span style=\"color: #BABED8; font-style: italic\">primes<\/span><span style=\"color: #89DDFF\">[<\/span><span style=\"color: #BABED8; font-style: italic\">i<\/span><span style=\"color: #89DDFF\">]<\/span><span style=\"color: #F07178\"> &lt;<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">limit<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&amp;&amp;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">isPrime<\/span><span style=\"color: #F07178\">; ++<\/span><span style=\"color: #BABED8; font-style: italic\">i<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t\t<\/span><span style=\"color: #BABED8\">isPrime<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">trial<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">%<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\">[<\/span><span style=\"color: #BABED8\">i<\/span><span style=\"color: #F07178\">] <\/span><span style=\"color: #89DDFF\">&gt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #F07178\">;\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ False for exact division<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #F07178\"> (<\/span><span style=\"color: #BABED8\">isPrime<\/span><span style=\"color: #F07178\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t\t<\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\">[<\/span><span style=\"color: #BABED8\">count<\/span><span style=\"color: #89DDFF\">++<\/span><span style=\"color: #F07178\">] <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">trial<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #BABED8\">trial<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">+=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">2<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ this is a cheat. It works because we pre-load 2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">\t\t\t\t\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ and our first trial is 3. If you set the trial to<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">\t\t\t\t\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ the first prime value in the list (2) this code<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">\t\t\t\t\t\t<\/span><span style=\"color: #464B5D; font-style: italic\">\/\/ would never find another.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #F07178\"> (<\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\/\/\toutput 10 to a line<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">void<\/span><span style=\"color: #BABED8\"> <\/span><span style=\"color: #82AAFF\">reportPrimes<\/span><span style=\"color: #BABED8\">( size_t max<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #BABED8\"> unsigned long <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\">primes)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #C792EA\">const<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">size_t<\/span><span style=\"color: #F07178\"> PER_LINE <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">10<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #C792EA\">const<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">size_t<\/span><span style=\"color: #F07178\"> PRINT_WIDTH <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">10<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF; font-style: italic\">for<\/span><span style=\"color: #F07178\"> (<\/span><span style=\"color: #BABED8\">size_t<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">i<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">{};<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">i<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">max<\/span><span style=\"color: #89DDFF\">;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">++<\/span><span style=\"color: #BABED8\">i<\/span><span style=\"color: #F07178\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cout<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #82AAFF\">setw<\/span><span style=\"color: #F07178\">(<\/span><span style=\"color: #BABED8\">PRINT_WIDTH<\/span><span style=\"color: #F07178\">) <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">primes<\/span><span style=\"color: #F07178\">[<\/span><span style=\"color: #BABED8\">i<\/span><span style=\"color: #F07178\">]<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #F07178\"> ((<\/span><span style=\"color: #BABED8\">i<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #F07178\">) <\/span><span style=\"color: #89DDFF\">%<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">PER_LINE<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">==<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #F07178\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cout<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">endl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">\t<\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cout<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">endl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">The Array<\/h3>\n\n\n\n<p>Lines 27 through 38 are the first thing we need to talk about. When you carve your main() down to the basics, you can avoid multiple exits wrapping the meat of the application within an if statement. Most examples stuff everything into main() but that is not a good way of doing things. Unless an application framework forces you to do otherwise main() should have no more than twenty lines of actual code. A hundred lines of comments are fine, but actual code should be under twenty. <\/p>\n\n\n\n<p>If it isn&#8217;t obvious, via the comment when reading lines 29 and 33, we allocate our array via a called function. Dropping down to line 75 you will see where we new it inside of an initializer so it is zeroed. Any time you new something, it lives until you nuke it via an appropriate delete. A stack declared<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"unsigned long primes [max];\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #BABED8\">unsigned long primes [max]<\/span><span style=\"color: #89DDFF\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>is not initalized and ceases to exist when it goes out of scope. Since we are talking about arrays and pointers with this example, stack declared arrays are also a pointer.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Old School Array Use<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/*  p-test-1\n *\n *\n *\/\n\n\/\/ globals before locals\n\/\/\n#include &lt;iostream&gt;\n#include &lt;iomanip&gt;\n#include &lt;cmath&gt;\n#include &lt;cstdlib&gt;\n\nint main( int argc, char **argv )\n{\n    unsigned long tbl [] {24, 56, 1, 99, 256};\n    unsigned long *ptr = tbl;\n\n    std::cout &lt;&lt; &quot;tbl [3]: &quot; &lt;&lt; tbl[3] &lt;&lt; std::endl;\n\n    ptr +=4;\n    std::cout &lt;&lt; &quot;value at ptr + 4: &quot; &lt;&lt; *ptr &lt;&lt; std::endl;\n\n    return ( EXIT_SUCCESS );\n}\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\/*  p-test-1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"> *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"> *<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\"> *\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\/\/ globals before locals<\/span><\/span>\n<span class=\"line\"><span style=\"color: #464B5D; font-style: italic\">\/\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\">iostream<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\">iomanip<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\">cmath<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">#include <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #BABED8\">cstdlib<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #BABED8\">int <\/span><span style=\"color: #82AAFF\">main<\/span><span style=\"color: #BABED8\">( int argc<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #BABED8\"> char <\/span><span style=\"color: #89DDFF\">**<\/span><span style=\"color: #BABED8\">argv )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">    <\/span><span style=\"color: #BABED8\">unsigned<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">long<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">tbl<\/span><span style=\"color: #F07178\"> [] <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #F78C6C\">24<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">56<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">99<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #F78C6C\">256<\/span><span style=\"color: #89DDFF\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">    <\/span><span style=\"color: #BABED8\">unsigned<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">long<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\">ptr<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">tbl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">    <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cout<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">tbl [3]: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #BABED8\">tbl<\/span><span style=\"color: #F07178\">[<\/span><span style=\"color: #F78C6C\">3<\/span><span style=\"color: #F07178\">] <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">endl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">    <\/span><span style=\"color: #BABED8\">ptr<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">+=<\/span><span style=\"color: #F78C6C\">4<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">    <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">cout<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">value at ptr + 4: <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #BABED8\">ptr<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #89DDFF\">&lt;&lt;<\/span><span style=\"color: #F07178\"> <\/span><span style=\"color: #FFCB6B\">std<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #F07178\">:<\/span><span style=\"color: #BABED8\">endl<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F07178\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #F07178\"> ( <\/span><span style=\"color: #BABED8\">EXIT_SUCCESS<\/span><span style=\"color: #F07178\"> )<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<pre class=\"wp-block-preformatted\">roland@roland-HP-Z2-SFF-G4-Workstation:~\/Projects\/p-test-1$ g++ main.cpp -o p-test-1<br \/>roland@roland-HP-Z2-SFF-G4-Workstation:~\/Projects\/p-test-1$ ls<br \/>main.cpp  p-test-1<br \/>roland@roland-HP-Z2-SFF-G4-Workstation:~\/Projects\/p-test-1$ .\/p-test-1 <br \/>tbl [3]: 99<br \/>value at ptr + 4: 256<br \/><\/pre>\n\n\n\n<p>Things most definitely got out of hand and developers took this to extremes. Read the 3-Dimensional array example code <a href=\"https:\/\/www.techiedelight.com\/dynamic-memory-allocation-in-c-for-2d-3d-array\/\">in this post<\/a>. There is absolutely no reason to write code like that in production today! The fact someone thinks it is a legit coding test is <em>exactly<\/em> why senior developers walk out of interviews. We won&#8217;t do shit like that! Only a skill-less hack would.<\/p>\n\n\n\n<p>In the 1980s before we had Vector classes and in-memory SQLite database tables, we had to do things like that. Deep in the bowels of every relational database engine there is probably code like that. <strong>It should not exist in production code you write!<\/strong> Someone fresh out of school will have to maintain that.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">return is a function<\/h2>\n\n\n\n<p>Please read the rant in the comments found in lines 40 &#8211; 63. I&#8217;m as guilty as sin when it comes to leaving the () off a single return value. I have had clients pointing it out since the late 1980s. One of the few things I like about Eclipse is that it flags the mission () as a bug.<\/p>\n\n\n\n<p>Having spent the past decade on x86 wanna-be-a-real-computer-one-day-when-I-grow-up processors, I&#8217;ve also got many bad examples out there of <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#0F111A\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"return (0);\" style=\"color:#babed8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-ocean\" style=\"background-color: #0F111A\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #BABED8\"> (<\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #BABED8\">)<\/span><span style=\"color: #89DDFF\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>When you do that, the code is non-portable. Only on x86 and some ARM processors that cloned x86 bad habits is zero considered a success. In the land of real computers every OS has some form of $SEVERITY where a set of bits in the return value are a category mask. In the land of OpenVMS odd values are success, even failure and zero a warning. The rest of that integer return contains a &#8220;message number&#8221; you can use to lookup what, if any, issue occurred. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Output<\/h2>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\">ArraysAndPointersExample<br \/>Version 0.1<br \/>How many primes would you like to find? 200<br \/>         2         3         5         7        11        13        17        19        23        29<br \/>        31        37        41        43        47        53        59        61        67        71<br \/>        73        79        83        89        97       101       103       107       109       113<br \/>       127       131       137       139       149       151       157       163       167       173<br \/>       179       181       191       193       197       199       211       223       227       229<br \/>       233       239       241       251       257       263       269       271       277       281<br \/>       283       293       307       311       313       317       331       337       347       349<br \/>       353       359       367       373       379       383       389       397       401       409<br \/>       419       421       431       433       439       443       449       457       461       463<br \/>       467       479       487       491       499       503       509       521       523       541<br \/>       547       557       563       569       571       577       587       593       599       601<br \/>       607       613       617       619       631       641       643       647       653       659<br \/>       661       673       677       683       691       701       709       719       727       733<br \/>       739       743       751       757       761       769       773       787       797       809<br \/>       811       821       823       827       829       839       853       857       859       863<br \/>       877       881       883       887       907       911       919       929       937       941<br \/>       947       953       967       971       977       983       991       997      1009      1013<br \/>      1019      1021      1031      1033      1039      1049      1051      1061      1063      1069<br \/>      1087      1091      1093      1097      1103      1109      1117      1123      1129      1151<br \/>      1153      1163      1171      1181      1187      1193      1201      1213      1217      1223<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>C++ arrays and pointers really originate with the C programming language. There have been massive improvements since the 1980s. Back then declaring arrays of structures was a bit iffy. Much of that had to do with the Stack vs. Near Heap vs. Far Heap issues of memory segmentation and &#8220;bytes allocated for alignment.&#8221; Refer to the std::vector post for further information on that. The Code We have a lot to talk about with this short &hellip; <a title=\"C++ Arrays and Pointers Example\" class=\"bnm-read-more\" href=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/\"><span class=\"screen-reader-text\">C++ Arrays and Pointers Example<\/span>Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":6284,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[2176,1504,1189],"class_list":["post-6646","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-information-technology","tag-arrays","tag-c","tag-pointers","bnm-entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C++ Arrays and Pointers Example &#8211; Logikal Blog<\/title>\n<meta name=\"description\" content=\"C++ arrays and pointers really originate with the C programming language. There have been massive improvements since the 1980s. Back then . .\" \/>\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.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ Arrays and Pointers Example &#8211; Logikal Blog\" \/>\n<meta property=\"og:description\" content=\"C++ arrays and pointers really originate with the C programming language. There have been massive improvements since the 1980s. Back then . .\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/\" \/>\n<meta property=\"og:site_name\" content=\"Logikal Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-27T20:06:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-27T23:24:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1880\" \/>\n\t<meta property=\"og:image:height\" content=\"1253\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"seasoned_geek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"seasoned_geek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/\"},\"author\":{\"name\":\"seasoned_geek\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"headline\":\"C++ Arrays and Pointers Example\",\"datePublished\":\"2023-11-27T20:06:17+00:00\",\"dateModified\":\"2023-11-27T23:24:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/\"},\"wordCount\":572,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/pexels-photo-6991812.jpeg\",\"keywords\":[\"arrays\",\"C++\",\"pointers\"],\"articleSection\":[\"Information Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/\",\"name\":\"C++ Arrays and Pointers Example &#8211; Logikal Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/pexels-photo-6991812.jpeg\",\"datePublished\":\"2023-11-27T20:06:17+00:00\",\"dateModified\":\"2023-11-27T23:24:42+00:00\",\"description\":\"C++ arrays and pointers really originate with the C programming language. There have been massive improvements since the 1980s. Back then . .\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/pexels-photo-6991812.jpeg\",\"contentUrl\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/pexels-photo-6991812.jpeg\",\"width\":1880,\"height\":1253,\"caption\":\"Photo by DS stories on Pexels.com\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/information-technology\\\/arrays-and-pointers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Arrays and Pointers Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/\",\"name\":\"Logikal Blog\",\"description\":\"For people with attention spans longer than a Tweet\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/#\\\/schema\\\/person\\\/c077f770ade13de7faaf616c3eac6842\",\"name\":\"seasoned_geek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\",\"caption\":\"seasoned_geek\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r\"},\"description\":\"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\\\/Qt touchscreen\\\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \\\"Zinc It!\\\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \\\"The Minimum You Need to Know to Be an OpenVMS Application Developer\\\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \\\"The Minimum You Need to Know\\\" book series was born. Three years later he wrote his first novel \\\"Infinite Exposure\\\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \\\"The Earth That Was\\\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.\",\"sameAs\":[\"https:\\\/\\\/theminimumyouneedtoknow.com\"],\"url\":\"https:\\\/\\\/www.logikalsolutions.com\\\/wordpress\\\/author\\\/seasoned_geek\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C++ Arrays and Pointers Example &#8211; Logikal Blog","description":"C++ arrays and pointers really originate with the C programming language. There have been massive improvements since the 1980s. Back then . .","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.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/","og_locale":"en_US","og_type":"article","og_title":"C++ Arrays and Pointers Example &#8211; Logikal Blog","og_description":"C++ arrays and pointers really originate with the C programming language. There have been massive improvements since the 1980s. Back then . .","og_url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/","og_site_name":"Logikal Blog","article_published_time":"2023-11-27T20:06:17+00:00","article_modified_time":"2023-11-27T23:24:42+00:00","og_image":[{"width":1880,"height":1253,"url":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","type":"image\/jpeg"}],"author":"seasoned_geek","twitter_card":"summary_large_image","twitter_misc":{"Written by":"seasoned_geek","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/#article","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/"},"author":{"name":"seasoned_geek","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"headline":"C++ Arrays and Pointers Example","datePublished":"2023-11-27T20:06:17+00:00","dateModified":"2023-11-27T23:24:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/"},"wordCount":572,"commentCount":1,"publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","keywords":["arrays","C++","pointers"],"articleSection":["Information Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/","url":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/","name":"C++ Arrays and Pointers Example &#8211; Logikal Blog","isPartOf":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/#primaryimage"},"image":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","datePublished":"2023-11-27T20:06:17+00:00","dateModified":"2023-11-27T23:24:42+00:00","description":"C++ arrays and pointers really originate with the C programming language. There have been massive improvements since the 1980s. Back then . .","breadcrumb":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/#primaryimage","url":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","contentUrl":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-content\/uploads\/2023\/11\/pexels-photo-6991812.jpeg","width":1880,"height":1253,"caption":"Photo by DS stories on Pexels.com"},{"@type":"BreadcrumbList","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/information-technology\/arrays-and-pointers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.logikalsolutions.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"C++ Arrays and Pointers Example"}]},{"@type":"WebSite","@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#website","url":"https:\/\/www.logikalsolutions.com\/wordpress\/","name":"Logikal Blog","description":"For people with attention spans longer than a Tweet","publisher":{"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.logikalsolutions.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.logikalsolutions.com\/wordpress\/#\/schema\/person\/c077f770ade13de7faaf616c3eac6842","name":"seasoned_geek","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","url":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r","caption":"seasoned_geek"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/ae9adac14079d84b909e635d7af986fe4568053af4fd9ff8d4109298c392493e?s=96&d=mm&r=r"},"description":"Roland Hughes started his IT career in the early 1980s. He quickly became a consultant and president of Logikal Solutions, a software consulting firm specializing in OpenVMS application and C++\/Qt touchscreen\/embedded Linux development. Early in his career he became involved in what is now called cross platform development. Given the dearth of useful books on the subject he ventured into the world of professional author in 1995 writing the first of the \"Zinc It!\" book series for John Gordon Burke Publisher, Inc. A decade later he released a massive (nearly 800 pages) tome \"The Minimum You Need to Know to Be an OpenVMS Application Developer\" which tried to encapsulate the essential skills gained over what was nearly a 20 year career at that point. From there \"The Minimum You Need to Know\" book series was born. Three years later he wrote his first novel \"Infinite Exposure\" which got much notice from people involved in the banking and financial security worlds. Some of the attacks predicted in that book have since come to pass. While it was not originally intended to be a trilogy, it became the first book of \"The Earth That Was\" trilogy: Infinite Exposure Lesedi - The Greatest Lie Ever Told John Smith - Last Known Survivor of the Microsoft Wars When he is not consulting Roland Hughes posts about technology and sometimes politics on his blog. He also has regularly scheduled Sunday posts appearing on the Interesting Authors blog.","sameAs":["https:\/\/theminimumyouneedtoknow.com"],"url":"https:\/\/www.logikalsolutions.com\/wordpress\/author\/seasoned_geek\/"}]}},"_links":{"self":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/6646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/comments?post=6646"}],"version-history":[{"count":0,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/posts\/6646\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media\/6284"}],"wp:attachment":[{"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/media?parent=6646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/categories?post=6646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.logikalsolutions.com\/wordpress\/wp-json\/wp\/v2\/tags?post=6646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}