{"id":34571,"date":"2023-03-31T01:11:38","date_gmt":"2023-03-30T19:41:38","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/"},"modified":"2023-03-31T01:11:38","modified_gmt":"2023-03-30T19:41:38","slug":"solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/","title":{"rendered":"[Solved] How do I read a large file of numbers and store its content in an array?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-75101313\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"75101313\" data-parentid=\"75101092\" 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><code>fopen<\/code>, <code>calloc<\/code>, and <code>realloc<\/code> can all <em>fail<\/em>, returning NULL.<\/p>\n<p>In the case of <code>realloc<\/code>, the original allocation will remain untouched, so immediately overwriting the original pointer with the newly returned value will leak memory and throw away potentially useful data.<\/p>\n<p>Reallocating every iteration is rather costly. A better strategy is to reallocate when the buffer is full, increasing the memory by some factor. Doubling the current size is a simple approach.<\/p>\n<p>Strictly sized buffers like <code>char [6]<\/code> are prone to filling up too quickly. Be more generous with your input buffer sizes.<\/p>\n<p>The primary issue is that <code>size<\/code> is never changed during the loop, so the allocated memory does not keep up with the data read. The buffer overflows and you invoke <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/en.cppreference.com\/w\/c\/language\/behavior\">Undefined Behaviour<\/a>, likely overwriting some data you should not have touched.<\/p>\n<p>Run this program as <code>.\/a.out nums.txt<\/code>, or omit the argument to read from <code>stdin<\/code>.<\/p>\n<pre><code>#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n\nint main(int argc, char **argv)\n{\n    char line[128];\n    FILE *file = argc &gt; 1 ? fopen(argv[1], \"r\") : stdin;\n\n    if (!file) {\n        perror(argv[1]);\n        return EXIT_FAILURE;\n    }\n\n    size_t size = 1024;\n    size_t length = 0;\n    int *list = malloc(sizeof *list * size);\n\n    if (!list) {\n        perror(\"malloc\");\n        return EXIT_FAILURE;\n    }\n\n    while (fgets(line, sizeof line, file)) {\n        int value = atoi(line);\n\n        if (!value)\n            continue;\n\n        if (length == size) {\n            size *= 2;\n            void *memory = realloc(list, sizeof *list * size);\n\n            if (!memory) {\n                perror(\"realloc\");\n                break;\n            }\n\n            list = memory;\n        }\n\n        list[length++] = value;\n    }\n\n    if (argc &gt; 1)\n        fclose(file);\n\n    \/* arbitrary use of data *\/\n    size_t odds = 0;\n\n    for (size_t i = 0; i &lt; length; i++)\n        if (list[i] &amp; 1)\n            odds++;\n\n    printf(\"Number of odd values: %zu\\n\", odds);\n\n    free(list);\n}\n<\/code><\/pre>\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 How do I read a large file of numbers and store its content in an array? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] fopen, calloc, and realloc can all fail, returning NULL. In the case of realloc, the original allocation will remain untouched, so immediately overwriting the original pointer with the newly returned value will leak memory and throw away potentially useful data. Reallocating every iteration is rather costly. A better strategy is to reallocate when the &#8230; <a title=\"[Solved] How do I read a large file of numbers and store its content in an array?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/\" aria-label=\"More on [Solved] How do I read a large file of numbers and store its content in an array?\">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,6076,4912,2162],"class_list":["post-34571","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-calloc","tag-coredump","tag-realloc"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] How do I read a large file of numbers and store its content in an array? - 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-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] How do I read a large file of numbers and store its content in an array? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] fopen, calloc, and realloc can all fail, returning NULL. In the case of realloc, the original allocation will remain untouched, so immediately overwriting the original pointer with the newly returned value will leak memory and throw away potentially useful data. Reallocating every iteration is rather costly. A better strategy is to reallocate when the ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-30T19:41:38+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-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] How do I read a large file of numbers and store its content in an array?\",\"datePublished\":\"2023-03-30T19:41:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/\"},\"wordCount\":173,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"calloc\",\"coredump\",\"realloc\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/\",\"name\":\"[Solved] How do I read a large file of numbers and store its content in an array? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2023-03-30T19:41:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] How do I read a large file of numbers and store its content in an array?\"}]},{\"@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] How do I read a large file of numbers and store its content in an array? - 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-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] How do I read a large file of numbers and store its content in an array? - JassWeb","og_description":"[ad_1] fopen, calloc, and realloc can all fail, returning NULL. In the case of realloc, the original allocation will remain untouched, so immediately overwriting the original pointer with the newly returned value will leak memory and throw away potentially useful data. Reallocating every iteration is rather costly. A better strategy is to reallocate when the ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/","og_site_name":"JassWeb","article_published_time":"2023-03-30T19:41:38+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-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] How do I read a large file of numbers and store its content in an array?","datePublished":"2023-03-30T19:41:38+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/"},"wordCount":173,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","calloc","coredump","realloc"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/","url":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/","name":"[Solved] How do I read a large file of numbers and store its content in an array? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-03-30T19:41:38+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-how-do-i-read-a-large-file-of-numbers-and-store-its-content-in-an-array\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] How do I read a large file of numbers and store its content in an array?"}]},{"@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\/34571","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=34571"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/34571\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=34571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=34571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=34571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}