{"id":24169,"date":"2022-11-30T20:40:49","date_gmt":"2022-11-30T15:10:49","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/"},"modified":"2022-11-30T20:40:49","modified_gmt":"2022-11-30T15:10:49","slug":"solved-c-memory-allocation-in-student-structure-not-working","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/","title":{"rendered":"[Solved] C memory allocation in student structure not working"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-41782557\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"41782557\" data-parentid=\"41782234\" 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<p>The API is confusing:<\/p>\n<p>What is <code>namelen<\/code> ?<\/p>\n<ul>\n<li>is it the length of the initial prefix of <code>name<\/code> that is the name of the student?  In this case you should allocate one extra byte for the null terminator and copy the name appropriately.<\/li>\n<li>is it the maximum length for the student name?  Again if this a the length, not the size, you need an extra byte for the null terminator.<\/li>\n<li>in any case <code>sizeof(namelen)<\/code> is inappropriate.<\/li>\n<\/ul>\n<p>What does <code>student_alloc()<\/code> do?<\/p>\n<p>Similarly, the size passed to <code>malloc()<\/code> to allocate the <code>student<\/code> structure should be that of <code>struct student<\/code> or more reliably that of the type pointed to by the destination pointer.<\/p>\n<p>Here is a corrected version:<\/p>\n<pre><code>struct student *student_init(struct student *student, const char *name, size_t namelen,\n                             struct student_id stud_id, student_complete stud_complete) {\n\n    struct student *initialized_student = malloc(sizeof(*initialized_student));\n    char *s_name = calloc(namelen + 1);\n\n    if (initialized_student &amp;&amp; s_name &amp;&amp; student_alloc()) {\n        strncat(s_name, name, namelen);\n        initialized_student-&gt;s_name = s_name;\n        initialized_student-&gt;s_id = stud_id;\n        initialized_student-&gt;s_complete = stud_complete;\n        return initialized_student;\n    } else {\n        free(initialized_student);\n        free(s_name);\n        return 0;\n    }\n}\n<\/code><\/pre>\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 C memory allocation in student structure not working <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] The API is confusing: What is namelen ? is it the length of the initial prefix of name that is the name of the student? In this case you should allocate one extra byte for the null terminator and copy the name appropriately. is it the maximum length for the student name? Again if &#8230; <a title=\"[Solved] C memory allocation in student structure not working\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/\" aria-label=\"More on [Solved] C memory allocation in student structure not working\">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,1372,3275,386,375],"class_list":["post-24169","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-dynamic-programming","tag-function-pointers","tag-malloc","tag-memory-management"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] C memory allocation in student structure not working - 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-c-memory-allocation-in-student-structure-not-working\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] C memory allocation in student structure not working - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] The API is confusing: What is namelen ? is it the length of the initial prefix of name that is the name of the student? In this case you should allocate one extra byte for the null terminator and copy the name appropriately. is it the maximum length for the student name? Again if ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-30T15:10:49+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-c-memory-allocation-in-student-structure-not-working\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-memory-allocation-in-student-structure-not-working\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] C memory allocation in student structure not working\",\"datePublished\":\"2022-11-30T15:10:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-memory-allocation-in-student-structure-not-working\\\/\"},\"wordCount\":126,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"c++\",\"dynamic-programming\",\"function-pointers\",\"malloc\",\"memory-management\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-memory-allocation-in-student-structure-not-working\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-memory-allocation-in-student-structure-not-working\\\/\",\"name\":\"[Solved] C memory allocation in student structure not working - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2022-11-30T15:10:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-memory-allocation-in-student-structure-not-working\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-memory-allocation-in-student-structure-not-working\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-c-memory-allocation-in-student-structure-not-working\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] C memory allocation in student structure not working\"}]},{\"@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\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] C memory allocation in student structure not working - 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-c-memory-allocation-in-student-structure-not-working\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] C memory allocation in student structure not working - JassWeb","og_description":"[ad_1] The API is confusing: What is namelen ? is it the length of the initial prefix of name that is the name of the student? In this case you should allocate one extra byte for the null terminator and copy the name appropriately. is it the maximum length for the student name? Again if ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/","og_site_name":"JassWeb","article_published_time":"2022-11-30T15:10:49+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-c-memory-allocation-in-student-structure-not-working\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] C memory allocation in student structure not working","datePublished":"2022-11-30T15:10:49+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/"},"wordCount":126,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","dynamic-programming","function-pointers","malloc","memory-management"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/","url":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/","name":"[Solved] C memory allocation in student structure not working - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-11-30T15:10:49+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-c-memory-allocation-in-student-structure-not-working\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] C memory allocation in student structure not working"}]},{"@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\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","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\/24169","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=24169"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/24169\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=24169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=24169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=24169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}