{"id":28625933,"url":"https://github.com/aavtic/dyna","last_synced_at":"2025-12-31T14:33:15.219Z","repository":{"id":287270996,"uuid":"962833092","full_name":"Aavtic/dyna","owner":"Aavtic","description":"Generic Dynamic Array in C","archived":false,"fork":false,"pushed_at":"2025-05-03T19:36:58.000Z","size":21,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-12T08:48:04.249Z","etag":null,"topics":["c","dynamic-array"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Aavtic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-08T18:35:40.000Z","updated_at":"2025-05-03T19:37:01.000Z","dependencies_parsed_at":"2025-06-12T08:49:34.192Z","dependency_job_id":null,"html_url":"https://github.com/Aavtic/dyna","commit_stats":null,"previous_names":["aavtic/dyna"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Aavtic/dyna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavtic%2Fdyna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavtic%2Fdyna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavtic%2Fdyna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavtic%2Fdyna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Aavtic","download_url":"https://codeload.github.com/Aavtic/dyna/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Aavtic%2Fdyna/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265837501,"owners_count":23836557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","dynamic-array"],"created_at":"2025-06-12T08:37:56.151Z","updated_at":"2025-12-31T14:33:15.175Z","avatar_url":"https://github.com/Aavtic.png","language":"C","readme":"# Dyna\n\ngeneric dynamic array in C supporting various data types such as int, char, float, and char* (strings).\n(Header Only btw).\n\n## Features\n* Dynamically resizes on demand\n* Type-safe via macro-based initialization\n* Supports any data type\n* Easy printing with format specifiers\n\n## Usage\n\n### Initialization\n\nUse the DYNA_INIT(Type) macro to define a dynamic array type:\n\n```c\nDYNA_INIT(int) Dyna;\nDyna dyna = {0};\ndyna.start = malloc(DYNA_INITIAL_CAP * sizeof(int));\ndyna.capacity = DYNA_INITIAL_CAP;\ndyna.size = sizeof(int);\n```\n\n### Append Elements\n\nUse dyna_append(\u0026array, value) to add elements dynamically:\n\n```c\nfor (int i = 0; i \u003c 50; ++i) {\n    dyna_append(\u0026dyna, i);\n}\n```\n\n### Print Elements\n\nUse dyna_print(\u0026array, format) to print the array:\n\n```c\ndyna_print(\u0026dyna, \"%i\");  // For ints\n```\n\n### Free Memory\n\nDon't forget to free the memory:\n\n```c\ndyna_free(\u0026dyna);\n```\n\n## Examples\n\n### Integers\n\n```c\nDYNA_INIT(int) Dyna;\nDyna dyna = {0};\ndyna.start = malloc(DYNA_INITIAL_CAP * sizeof(int));\ndyna.capacity = DYNA_INITIAL_CAP;\ndyna.size = sizeof(int);\n\nfor (int i = 0; i \u003c 50; ++i) dyna_append(\u0026dyna, i);\n\ndyna_print(\u0026dyna, \"%i\");\ndyna_free(\u0026dyna);\n```\n\n### Characters\n\n```c\nDYNA_INIT(char) DynaChar;\nDynaChar dynac = {0};\ndynac.start = malloc(DYNA_INITIAL_CAP * sizeof(char));\ndynac.capacity = DYNA_INITIAL_CAP;\ndynac.size = sizeof(char);\n\nfor (int i = 0; i \u003c 26; ++i) dyna_append(\u0026dynac, 'a' + i);\n\ndyna_print(\u0026dynac, \"'%c'\");\ndyna_free(\u0026dynac);\n```\n\n### Floats\n\n```c\nDYNA_INIT(float) DynaFloat;\nDynaFloat dynaf = {0};\ndynaf.start = malloc(DYNA_INITIAL_CAP * sizeof(float));\ndynaf.capacity = DYNA_INITIAL_CAP;\ndynaf.size = sizeof(float);\n\nfor (int i = 0; i \u003c 10; ++i) dyna_append(\u0026dynaf, i + 0.5f);\n\ndyna_print(\u0026dynaf, \"%f\");\ndyna_free(\u0026dynaf);\n```\n\n### Strings\n\n```c\nDYNA_INIT(char*) DynaStr;\nDynaStr dynas = {0};\ndynas.start = malloc(DYNA_INITIAL_CAP * sizeof(char*));\ndynas.capacity = DYNA_INITIAL_CAP;\ndynas.size = sizeof(char*);\n\nfor (int i = 0; i \u003c 10; ++i) dyna_append(\u0026dynas, \"Hello There\");\n\ndyna_print(\u0026dynas, \"\\\"%s\\\"\");\ndyna_free(\u0026dynas);\n\n\n# This is my Implementation of Dynamic Array in C.\n\nI am still learning and experimenting things out on myself. There could be problems with my implementation of dynamic array in C. If you find any mistakes or have any suggestions please do let me know.\n\n```\n\n\n## This is my Implementation of Dynamic Array in C.\n\nI am still learning and experimenting things out on myself. If you find any mistakes or have any suggestions please do let me know.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faavtic%2Fdyna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faavtic%2Fdyna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faavtic%2Fdyna/lists"}