From 316713591f69756cf786954c5cb7a38e73ec78eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Zrounba?= <6691770+clement-z@users.noreply.github.com> Date: Mon, 21 Dec 2020 23:48:40 +0100 Subject: initial commit --- main_dyn.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 main_dyn.c (limited to 'main_dyn.c') diff --git a/main_dyn.c b/main_dyn.c new file mode 100644 index 0000000..267b7f5 --- /dev/null +++ b/main_dyn.c @@ -0,0 +1,50 @@ +#include +#include +#include + +struct va { + int n; + int nmax; + int *data; +}; + +void create_array(struct va *va, int nmax) { + va->n = 0; + va->nmax = nmax; + va->data = (int *) malloc(nmax * sizeof(int)); + if(va->data == NULL) + // no space left to allocate data... + return; +} + +void init_array(struct va *va, int n, int *src) { + if(n > va->nmax) + return; + va->n = n; + memcpy(va->data, src, n*sizeof(int)); +} + +void free_array(struct va *va) { + if(va->data) + free(va->data); + va->nmax = 0; + va->n = 0; + va->data = NULL; +} + +int main(int argc, char *argv[]) { + struct va va; + int t[5] = {1,2,3,4,5}; + int i; + + create_array(&va, 12); + init_array(&va, 5, t); + + for(i = 0; i < va.n; ++i) { + printf("%d\n", va.data[i]); + } + + free_array(&va); + + return 0; +} -- cgit v1.2.3