From 8870e5e7db6a49ccc9af5fbf1d267c34007a586f Mon Sep 17 00:00:00 2001 From: William Lee Date: Wed, 26 Jun 2024 16:54:21 +0800 Subject: [PATCH] (MOD) Reordered struct member "members" from "Array" from 2nd to 1st for a more convenient accessing to "Var.addr in Array.member[0]". (MOD) Modified test.c. --- Array/include/array.h | 2 +- test.c | 48 ++++++++++++++++++++++++++----------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/Array/include/array.h b/Array/include/array.h index 3eb1a2a..422d1ba 100644 --- a/Array/include/array.h +++ b/Array/include/array.h @@ -4,8 +4,8 @@ # include typedef struct { - int len; Var *members; + int len; bool alive; } Array; diff --git a/test.c b/test.c index 8fc07c9..13b25f1 100644 --- a/test.c +++ b/test.c @@ -21,32 +21,42 @@ void __DESTRUCT__() {} Status Main(void) { - const int len = 8; + // const int len = 8; - int iarr[] = { - 1, 2, 4, 8, 16, 32, 64, 128 - }; + // int iarr[] = { + // 1, 2, 4, 8, 16, 32, 64, 128 + // }; + // Array arr; + // fails(Array_Create(&arr, len, sizeof(__typeof__(iarr[0]))), + // "Failed to create an array instance."); + + // /* Array member assignments with iarr. */ + // for (register int i = 0; i < arr.len; i++) { + // arr.members[i].addr = &iarr[i]; + // } + + // for (register int i = 0; i < arr.len; i++) { + // (void)printf("%d\n", i); + + // for (register int j = 0; j < *(int *)arr.members[i].addr; j++) { + // (void)printf("#"); + // } + + // (void)printf("\n"); + // } + + // // Array_Delete(&arr); + + Array arr; - fails(Array_Create(&arr, len, sizeof(__typeof__(iarr[0]))), - "Failed to create an array instance."); - - /* Array member assignments with iarr. */ - for (register int i = 0; i < arr.len; i++) { - arr.members[i].addr = &iarr[i]; - } + fail(Array_Create(&arr, 8, sizeof(long long))); for (register int i = 0; i < arr.len; i++) { - (void)printf("%d\n", i); - - for (register int j = 0; j < *(int *)arr.members[i].addr; j++) { - (void)printf("#"); - } - - (void)printf("\n"); + (void)printf("%d:\t%p\n", i, arr.members[i].addr); } - // Array_Delete(&arr); + Array_Delete(&arr); return apply(NormalStatus); }