{"id":4468,"date":"2022-08-23T00:29:15","date_gmt":"2022-08-22T18:59:15","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/"},"modified":"2022-08-23T00:29:15","modified_gmt":"2022-08-22T18:59:15","slug":"solved-cast-increment-and-assign-in-c","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/","title":{"rendered":"[Solved] Cast increment and assign in C"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-38083532\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"38083532\" data-parentid=\"38082586\" data-score=\"1\" 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<blockquote>\n<p>[How can I] De-reference and assign a value to a pointer and increment the pointer by (uint64_t) bytes in one line[?]<\/p>\n<\/blockquote>\n<p>You are trying to do too many things with a single expression.  You should break it up.  Moreover, &#8220;one line&#8221; is more or less arbitrary.  I could take your one-liner and spread it out over 12 non-empty lines, and I can take many lines and join them together.  The closest actually meaningful thing would be one full expression.<\/p>\n<p>Nevertheless, if you insist on doing it in one full expression, and you&#8217;re willing to assume that the size of an <code>int<\/code> evenly divides the size of a <code>uint64_t<\/code>, then you might do it like so:<\/p>\n<pre><code>unsigned int *myvalue = 0xDEADBEEF;\n*myvalue = 34, myvalue += (sizeof(uint64_t) \/ sizeof(int));\n<\/code><\/pre>\n<p>Of course, that&#8217;s mostly sophistry around the meaning of a &#8220;full expression&#8221; &#8212; it would be much better style to use a semicolon instead of a comma operator, but then there would be two full expressions.  But that&#8217;s the ground on which you chose to pitch your tent.<\/p>\n<p>Alternatively, if you&#8217;re open to changing the type of <code>myvalue<\/code>, then it would be a bit cleaner to do it like this:<\/p>\n<pre><code>uint64_t *myvalue = 0xDEADBEEF;\n* (int *) (myvalue++) = 34;\n<\/code><\/pre>\n<p>Overall, however, although C permits casting from one object pointer type to another, it makes few promises about how the converted result can safely be used.  Furthermore, such casts violate the strict aliasing rule, which may contribute to an optimizing compiler producing an incorrect and hard-to-debug program.<\/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 Cast increment and assign in C <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] [How can I] De-reference and assign a value to a pointer and increment the pointer by (uint64_t) bytes in one line[?] You are trying to do too many things with a single expression. You should break it up. Moreover, &#8220;one line&#8221; is more or less arbitrary. I could take your one-liner and spread it &#8230; <a title=\"[Solved] Cast increment and assign in C\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/\" aria-label=\"More on [Solved] Cast increment and assign in C\">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,387,712],"class_list":["post-4468","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-casting","tag-pointers"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Cast increment and assign in C - 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-cast-increment-and-assign-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Cast increment and assign in C - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] [How can I] De-reference and assign a value to a pointer and increment the pointer by (uint64_t) bytes in one line[?] You are trying to do too many things with a single expression. You should break it up. Moreover, &#8220;one line&#8221; is more or less arbitrary. I could take your one-liner and spread it ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-22T18:59:15+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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Cast increment and assign in C\",\"datePublished\":\"2022-08-22T18:59:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/\"},\"wordCount\":249,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"casting\",\"pointers\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/\",\"name\":\"[Solved] Cast increment and assign in C - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-08-22T18:59:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Cast increment and assign in C\"}]},{\"@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] Cast increment and assign in C - 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-cast-increment-and-assign-in-c\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Cast increment and assign in C - JassWeb","og_description":"[ad_1] [How can I] De-reference and assign a value to a pointer and increment the pointer by (uint64_t) bytes in one line[?] You are trying to do too many things with a single expression. You should break it up. Moreover, &#8220;one line&#8221; is more or less arbitrary. I could take your one-liner and spread it ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/","og_site_name":"JassWeb","article_published_time":"2022-08-22T18:59:15+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Cast increment and assign in C","datePublished":"2022-08-22T18:59:15+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/"},"wordCount":249,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","casting","pointers"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/","url":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/","name":"[Solved] Cast increment and assign in C - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-08-22T18:59:15+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-cast-increment-and-assign-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Cast increment and assign in C"}]},{"@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\/4468","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=4468"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/4468\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=4468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=4468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=4468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}