{"id":25087,"date":"2022-12-07T20:07:11","date_gmt":"2022-12-07T14:37:11","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/"},"modified":"2022-12-07T20:07:11","modified_gmt":"2022-12-07T14:37:11","slug":"solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/","title":{"rendered":"[Solved] The segmentation fault error that I cannot understand [duplicate]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-53124796\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"53124796\" data-parentid=\"53124477\" data-score=\"4\" 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>Here&#8217;s a step-by-step breakdown of what your code is doing:<\/p>\n<hr>\n<pre><code>int *a;\nint *b;\n<\/code><\/pre>\n<p>This declares two pointers to <code>int<\/code> named <code>a<\/code> and <code>b<\/code>. It <em>does not initialize them<\/em>. That means that their values are unspecified, and you should expect them to be complete garbage. You can think of them as &#8220;wild&#8221; pointers at this moment, which is to say that they don&#8217;t point to valid objects, and dereferencing them will cause Undefined Behavior and introduce a plethora of weird bugs, if not a simple crash.<\/p>\n<hr>\n<pre><code>int c=12;\n<\/code><\/pre>\n<p>This creates a simple local variable <code>c<\/code> of type <code>int<\/code>, which <em>is<\/em> initialized, with a value of <code>12<\/code>. If you hadn&#8217;t initialized it, as in <code>int c;<\/code> then it would also be full of garbage.<\/p>\n<hr>\n<pre><code>a=&amp;c;\n<\/code><\/pre>\n<p>This snippet sets the pointer <code>a<\/code> to point to <code>c<\/code>, which is to say that the address of <code>c<\/code> is assigned to <code>a<\/code>. Now <code>a<\/code> is no longer uninitialized, and points to a well-defined location. After this, you can safely dereference <code>a<\/code> and be assured that there is a valid <code>int<\/code> at the other end.<\/p>\n<hr>\n<pre><code>*b=*b;\n<\/code><\/pre>\n<p>Here, you are dereferencing <code>b<\/code>, which means that you are reaching into your programs memory to grab whatever is pointed to by <code>b<\/code>. But <code>b<\/code> is uninitialized; it is garbage. What is it pointing to? Who knows? To read from the address it points to is like Russian roulette, you might kill your program immediately if you get really unlucky and the Operating System or runtime environment notices you doing something that&#8217;s obviously wrong. But you also might get away with it, only for <em>weird<\/em> and unpredictable bugs to emerge later. This weirdness and unpredictability is why a good C++ programmer avoids Undefined Behavior at all costs, and ensures that variables are initialized before they are used, and makes sure that pointers are pointing to valid objects before dereferencing them.<\/p>\n<p><strong>Why does there appear to be a difference depending on <code>a=&amp;c;<\/code>?<\/strong><\/p>\n<p>As to why your program apparently crashes or doesn&#8217;t crash depending on how you initialize the other pointer, the answer is that it doesn&#8217;t matter. In both cases, you&#8217;re causing Undefined Behavior; you are breaking the language&#8217;s rules and you should not expect the language to behave correctly for you thereafter, and all bets are off.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">0<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved The segmentation fault error that I cannot understand [duplicate] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Here&#8217;s a step-by-step breakdown of what your code is doing: int *a; int *b; This declares two pointers to int named a and b. It does not initialize them. That means that their values are unspecified, and you should expect them to be complete garbage. You can think of them as &#8220;wild&#8221; pointers at &#8230; <a title=\"[Solved] The segmentation fault error that I cannot understand [duplicate]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/\" aria-label=\"More on [Solved] The segmentation fault error that I cannot understand [duplicate]\">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,608,424,1187],"class_list":["post-25087","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-gcc","tag-linux","tag-segmentation-fault"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] The segmentation fault error that I cannot understand [duplicate] - 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-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] The segmentation fault error that I cannot understand [duplicate] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Here&#8217;s a step-by-step breakdown of what your code is doing: int *a; int *b; This declares two pointers to int named a and b. It does not initialize them. That means that their values are unspecified, and you should expect them to be complete garbage. You can think of them as &#8220;wild&#8221; pointers at ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-07T14:37:11+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-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] The segmentation fault error that I cannot understand [duplicate]\",\"datePublished\":\"2022-12-07T14:37:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/\"},\"wordCount\":380,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"gcc\",\"linux\",\"segmentation-fault\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/\",\"name\":\"[Solved] The segmentation fault error that I cannot understand [duplicate] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-12-07T14:37:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] The segmentation fault error that I cannot understand [duplicate]\"}]},{\"@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] The segmentation fault error that I cannot understand [duplicate] - 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-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] The segmentation fault error that I cannot understand [duplicate] - JassWeb","og_description":"[ad_1] Here&#8217;s a step-by-step breakdown of what your code is doing: int *a; int *b; This declares two pointers to int named a and b. It does not initialize them. That means that their values are unspecified, and you should expect them to be complete garbage. You can think of them as &#8220;wild&#8221; pointers at ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/","og_site_name":"JassWeb","article_published_time":"2022-12-07T14:37:11+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-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] The segmentation fault error that I cannot understand [duplicate]","datePublished":"2022-12-07T14:37:11+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/"},"wordCount":380,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","gcc","linux","segmentation-fault"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/","url":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/","name":"[Solved] The segmentation fault error that I cannot understand [duplicate] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-07T14:37:11+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-the-segmentation-fault-error-that-i-cannot-understand-duplicate\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] The segmentation fault error that I cannot understand [duplicate]"}]},{"@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\/25087","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=25087"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/25087\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=25087"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=25087"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=25087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}