{"id":5899,"date":"2022-08-31T07:05:41","date_gmt":"2022-08-31T01:35:41","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/"},"modified":"2022-08-31T07:05:41","modified_gmt":"2022-08-31T01:35:41","slug":"solved-why-are-old-values-in-an-array-still-present-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/","title":{"rendered":"[Solved] Why are old values in an array still present? [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-50779602\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"50779602\" data-parentid=\"50777573\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>In C, strings are stored as <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/en.wikipedia.org\/wiki\/Null-terminated_string\">null-terminated<\/a> arrays of characters. This means that there are many ways to represent the same string: everything in the array of characters after the first null byte is ignored, as far as the value of the string is concerned.<\/p>\n<p>When the first <code>gets<\/code> call reads <code>HelloWorld<\/code>, it stores the character <code>'H'<\/code> in <code>c[0]<\/code>, <code>'e'<\/code> in <code>c[1]<\/code>, \u2026, <code>'d'<\/code> in <code>c[9]<\/code> and 0 (that&#8217;s a null byte, not <code>'0'<\/code>) in <code>c[10]<\/code>. The contents of <code>c[11]<\/code> through <code>c[1023]<\/code> are unchanged.<\/p>\n<p>When the second <code>gets<\/code> call reads <code>Tech<\/code>, it stores the character <code>'T'<\/code> in <code>c[0]<\/code>, <code>'e'<\/code> in <code>c[1]<\/code>, <code>'c'<\/code> in <code>c[2]<\/code>, <code>'h'<\/code> in <code>c[3]<\/code> and 0 in <code>c[4]<\/code>. The contents of <code>c[5]<\/code> through <code>c[1023]<\/code> are unchanged. In particular, <code>c[5]<\/code> still has the value <code>W<\/code> that was set by the first <code>gets<\/code> call.<\/p>\n<p>If you&#8217;re used to high-level languages, you might expect that <code>gets<\/code> allocates new storage, or that doing what looks like a string access guarantees that you&#8217;re actually accessing the string, but neither of these is true.<\/p>\n<p>As you might guess from the fact that you pass an array of characters to <code>gets<\/code>, it merely writes to that array of characters, it doesn&#8217;t allocate new storage. When <code>gets<\/code> reads a 4-byte string, it writes that 4-byte string plus the terminating null byte, and it doesn&#8217;t touch whatever comes after those 5 bytes. In fact, <code>gets<\/code> doesn&#8217;t even know the size of the array (which is why <code>gets<\/code> is practically unusable in practice and has been removed from the current version of the C language: if you input a line that&#8217;s too long for the array, it will overwrite whatever comes after the array in memory).<\/p>\n<p><code>c[5]<\/code> accesses the element of the array <code>c<\/code> at position 5. This happens to be outside the string, but that&#8217;s not relevant to how an array access operates. It&#8217;s an <em>array<\/em> access, not a <em>string<\/em> access. C doesn&#8217;t really have strings natively: it fakes them with arrays of characters. String manipulation functions treat their arguments as strings (i.e. they only look up to the first null byte). But an array access is just an array access, and it&#8217;s up to the programmer not to access the string, or the array, out of bounds.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Why are old values in an array still present? [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] In C, strings are stored as null-terminated arrays of characters. This means that there are many ways to represent the same string: everything in the array of characters after the first null byte is ignored, as far as the value of the string is concerned. When the first gets call reads HelloWorld, it stores &#8230; <a title=\"[Solved] Why are old values in an array still present? [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/\" aria-label=\"More on [Solved] Why are old values in an array still present? [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[361,324,362],"class_list":["post-5899","post","type-post","status-publish","format-standard","hentry","category-solved","tag-arrays","tag-c","tag-string"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Why are old values in an array still present? [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Why are old values in an array still present? [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] In C, strings are stored as null-terminated arrays of characters. This means that there are many ways to represent the same string: everything in the array of characters after the first null byte is ignored, as far as the value of the string is concerned. When the first gets call reads HelloWorld, it stores ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-31T01:35:41+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Why are old values in an array still present? [closed]\",\"datePublished\":\"2022-08-31T01:35:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/\"},\"wordCount\":368,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"arrays\",\"c++\",\"string\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/\",\"name\":\"[Solved] Why are old values in an array still present? [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-08-31T01:35:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Why are old values in an array still present? [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Why are old values in an array still present? [closed] - JassWeb","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:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Why are old values in an array still present? [closed] - JassWeb","og_description":"[ad_1] In C, strings are stored as null-terminated arrays of characters. This means that there are many ways to represent the same string: everything in the array of characters after the first null byte is ignored, as far as the value of the string is concerned. When the first gets call reads HelloWorld, it stores ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/","og_site_name":"JassWeb","article_published_time":"2022-08-31T01:35:41+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Why are old values in an array still present? [closed]","datePublished":"2022-08-31T01:35:41+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/"},"wordCount":368,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["arrays","c++","string"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/","name":"[Solved] Why are old values in an array still present? [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-08-31T01:35:41+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-why-are-old-values-in-an-array-still-present-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Why are old values in an array still present? [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775798750","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/5899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=5899"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/5899\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=5899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=5899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=5899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}