{"id":11988,"date":"2022-09-29T05:49:33","date_gmt":"2022-09-29T00:19:33","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/"},"modified":"2022-09-29T05:49:33","modified_gmt":"2022-09-29T00:19:33","slug":"solved-what-is-happening-with-this-code-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/","title":{"rendered":"[Solved] What is happening with this code [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-25907419\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"25907419\" data-parentid=\"25906781\" data-score=\"0\" data-position-on-page=\"2\" data-highest-scored=\"0\" data-question-has-accepted-highest-score=\"0\" itemprop=\"suggestedAnswer\" 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<blockquote>\n<p>as we see there is no use of &#8220;i&#8221; in program but still effect on program,and i know that num is not initialized that&#8217;s why i want to know the effect and output<\/p>\n<\/blockquote>\n<p>Besides the fact that <code>num<\/code> is uninitialized and hence results in undefined behaviour (means, anything can happen), you can have a look at the technical aspects by analysing the assembly output. However this is byond the C specification and heavily depends on the compiler, the underlying architecture and the operating system you are using.<\/p>\n<ul>\n<li>\n<p>How does <code>i<\/code> affect the program?<\/p>\n<p>It is not used and hence the compiler might even decide to completely ignore it. However, when compiling the code with <code>gcc<\/code> with no optimization, we see that this adds one instruction to the code:<\/p>\n<pre><code>movl    $-4, -12(%rbp)\n<\/code><\/pre>\n<p>Hence, there are two effects: The resulting object code will be slightly larger due to the additional instruction, and the runtime of the program will be increased slightly. This might be completely different if you are using a different optimization level.<\/p>\n<\/li>\n<li>\n<p>Num is not initialized that&#8217;s why i want to know the effect and output <\/p>\n<p>For automatic variables, only space is allocated (on the stack), but it is not initialized. Since the same memory locations (the stack) might have been used before, these locations might have any contents. So, the output depends on what happened before, and this is indeterminate. Since <code>j<\/code> is calculated based on <code>num<\/code>, also the contents of <code>j<\/code> is undefined.<\/p>\n<\/li>\n<li>\n<p>why the output is getting effected when i remove the variable i <\/p>\n<p>Removing the variable <code>i<\/code> might affect the space allocation on the stack (since less space is required), and might result in <code>num<\/code> to reuse a different memory location which might contain by chance a constant value instead of a random value. However, still this is undefined and changes with compiler, architecture and platform, and depends on what happened earlier.<\/p>\n<p>Possible stack layout with <code>i<\/code>, by chance the first word always contains <code>0x0000<\/code> while the second word is different for each program invocation:<\/p>\n<pre><code> --------\n| 0x0000 |   &lt;= memory location assigned to i (will be initialized to -4 in the next step)\n+--------+\n| 0xnnnn |   &lt;= memory location assigned to num (contains a random value)\n --------\n<\/code><\/pre>\n<p>Possible stack layout without <code>i<\/code>:<\/p>\n<pre><code> --------\n| 0x0000 |   &lt;= memory location assigned to num (randomly \"initialized\" to 0x0000 by coincidence)\n+--------+\n| 0xnnnn |   (Unused)\n --------\n<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>Still, everything which we observe is simply <strong>Undefined Behaviour<\/strong>.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">1<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved What is happening with this code [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] as we see there is no use of &#8220;i&#8221; in program but still effect on program,and i know that num is not initialized that&#8217;s why i want to know the effect and output Besides the fact that num is uninitialized and hence results in undefined behaviour (means, anything can happen), you can have a &#8230; <a title=\"[Solved] What is happening with this code [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/\" aria-label=\"More on [Solved] What is happening with this code [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":[324,2795,1544],"class_list":["post-11988","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-conditional","tag-conditional-statements"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] What is happening with this code [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-what-is-happening-with-this-code-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] What is happening with this code [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] as we see there is no use of &#8220;i&#8221; in program but still effect on program,and i know that num is not initialized that&#8217;s why i want to know the effect and output Besides the fact that num is uninitialized and hence results in undefined behaviour (means, anything can happen), you can have a ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-29T00:19:33+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-what-is-happening-with-this-code-closed\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] What is happening with this code [closed]\",\"datePublished\":\"2022-09-29T00:19:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/\"},\"wordCount\":360,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"conditional\",\"conditional-statements\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/\",\"name\":\"[Solved] What is happening with this code [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-29T00:19:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] What is happening with this code [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=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] What is happening with this code [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-what-is-happening-with-this-code-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] What is happening with this code [closed] - JassWeb","og_description":"[ad_1] as we see there is no use of &#8220;i&#8221; in program but still effect on program,and i know that num is not initialized that&#8217;s why i want to know the effect and output Besides the fact that num is uninitialized and hence results in undefined behaviour (means, anything can happen), you can have a ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/","og_site_name":"JassWeb","article_published_time":"2022-09-29T00:19:33+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-what-is-happening-with-this-code-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] What is happening with this code [closed]","datePublished":"2022-09-29T00:19:33+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/"},"wordCount":360,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","conditional","conditional-statements"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/","name":"[Solved] What is happening with this code [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-29T00:19:33+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-what-is-happening-with-this-code-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] What is happening with this code [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=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","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\/11988","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=11988"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11988\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=11988"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=11988"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=11988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}