From 4552bcf5a4a356415e248dee3b201f0cea7205bb Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Wed, 27 Aug 2025 12:45:33 -0600 Subject: chore: Refactor two_d_arr_init function Return a pointer to a new struct, rather than initialise objects in an existing struct --- leetcode.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'leetcode.c') diff --git a/leetcode.c b/leetcode.c index b7c3b22..e405420 100644 --- a/leetcode.c +++ b/leetcode.c @@ -1,16 +1,17 @@ #include "leetcode.h" -void two_d_arr_init(struct two_d_arr *obj, int row_size, int col_size, - int arr[row_size][col_size]) { +struct two_d_arr *two_d_arr_init(int row_size, int col_size, + int arr[][col_size]) { + struct two_d_arr *obj = (struct two_d_arr *)malloc(sizeof(struct two_d_arr)); obj->row_size = row_size; obj->col_size = (int *)malloc(row_size * sizeof(int)); obj->arr = (int **)malloc(row_size * sizeof(int *)); for (int i = 0; i < row_size; i++) { obj->col_size[i] = col_size; obj->arr[i] = (int *)malloc(col_size * sizeof(int)); - for (int j = 0; j < col_size; j++) - obj->arr[i][j] = arr[i][j]; + memcpy(obj->arr[i], arr[i], col_size * sizeof(int)); } + return obj; } void two_d_arr_free(struct two_d_arr *obj) { -- cgit v1.2.3