Switch to using typedef for a function pointer
authorLukáš Jiřiště <gymnazium.jiriste@gmail.com>
Sat, 2 Aug 2025 14:26:07 +0000 (16:26 +0200)
committerLukáš Jiřiště <gymnazium.jiriste@gmail.com>
Sat, 2 Aug 2025 14:26:07 +0000 (16:26 +0200)
inc/ft_arr.h
inc/ft_struct.h

index 233e303fc9a4fc8e4003294dae0bc8935c6eb2c8..bde332845f91969bf7778ad7ac0f056ea186a099 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <ljiriste@student.42prague.com>   +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/12/09 13:58:15 by ljiriste          #+#    #+#             */
-/*   Updated: 2025/07/31 07:21:49 by ljiriste         ###   ########.fr       */
+/*   Updated: 2025/08/02 16:23:54 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -26,6 +26,8 @@ extern "C" {
 
 typedef t_ft_stat      t_arr_stat;
 
+typedef void (*t_free_fun)(void *);
+
 // It should be possible to remove el_size with the use of macros?
 typedef struct s_vec
 {
@@ -47,14 +49,14 @@ t_arr_stat  ft_vec_enlarge(t_vec *vec);
 t_arr_stat     ft_vec_insert(t_vec *vec, const void *element, size_t index);
 t_arr_stat     ft_vec_append(t_vec *vec, const void *element);
 t_arr_stat     ft_vec_forget(t_vec *vec, size_t index);
-t_arr_stat     ft_vec_erase(t_vec *vec, size_t index, void (*free_el)(void *));
+t_arr_stat     ft_vec_erase(t_vec *vec, size_t index, t_free_fun free_el);
 
 t_arr_stat     ft_vec_insert_range(t_vec *vec, const void *element,
                                size_t count, size_t index);
 t_arr_stat     ft_vec_append_range(t_vec *vec, const void *element, size_t count);
 t_arr_stat     ft_vec_forget_range(t_vec *vec, size_t index, size_t count);
 t_arr_stat     ft_vec_erase_range(t_vec *vec, size_t count, size_t index,
-                               void (*free_el)(void *));
+                               t_free_fun free_el);
 
 t_arr_stat     ft_vec_insert_empty(t_vec *vec, size_t i);
 t_arr_stat     ft_vec_insert_empty_range(t_vec *vec, size_t count, size_t i);
@@ -70,7 +72,7 @@ t_arr_stat    ft_vec_append_empty_range(t_vec *vec, size_t count);
 */
 
 t_arr_stat     ft_vec_init(t_vec *vec, size_t el_size);
-void           ft_vec_free(t_vec *vec, void (*free_el)(void *));
+void           ft_vec_free(t_vec *vec, t_free_fun free_el);
 void           *ft_vec_access(t_vec *vec, size_t index);
 const void     *ft_vec_caccess(const t_vec *vec, size_t index);
 
@@ -83,7 +85,7 @@ const void    *ft_vec_caccess(const t_vec *vec, size_t index);
  */
 t_arr_stat     ft_vec_copy(t_vec *dest, const t_vec *src,
                                t_ft_stat (*copy_el)(void *, const void *),
-                               void (*free_el)(void *));
+                               t_free_fun free_el);
 
 void           *ft_vec_find(t_vec *vec, void *wanted,
                                int (*cmp_elements)(const void *, const void *));
@@ -108,16 +110,16 @@ t_ft_stat ft_vec_setinsert(t_vec *vec, const void *el,
                                int (*cmp_el)(const void *, const void *));
 
 t_arr_stat     ft_mat_init(t_mat *mat, size_t el_size);
-void           ft_mat_free(t_mat *mat, void (*free_el)(void *));
+void           ft_mat_free(t_mat *mat, t_free_fun free_el);
 t_arr_stat     ft_mat_resize(t_mat *mat, size_t rows, size_t cols);
 t_arr_stat     ft_mat_insert_row(t_mat *mat, const t_vec *vec, size_t index);
 t_arr_stat     ft_mat_insert_col(t_mat *mat, const t_vec *vec, size_t index);
 t_arr_stat     ft_mat_append_row(t_mat *mat, const t_vec *vec);
 t_arr_stat     ft_mat_append_col(t_mat *mat, const t_vec *vec);
 t_arr_stat     ft_mat_erase_rows(t_mat *mat, size_t count,
-                               size_t index, void (*free_el)(void *));
+                               size_t index, t_free_fun free_el);
 t_arr_stat     ft_mat_erase_cols(t_mat *mat, size_t count,
-                               size_t index, void (*free_el)(void *));
+                               size_t index, t_free_fun free_el);
 void           *ft_mat_access(t_mat *mat, size_t row, size_t col);
 t_arr_stat     ft_mat_zeros(t_mat *matrix, size_t rows, size_t cols);
 t_arr_stat     ft_mat_fill(t_mat *mat, void *filler);
index 5305a51836847cdbe7c6b6ebe3f6bfff40d06cb0..d7cb3b2209656e0988cff66fce4d4f8b4e0b4908 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2024/06/20 16:59:43 by ljiriste          #+#    #+#             */
-/*   Updated: 2025/08/01 14:52:17 by ljiriste         ###   ########.fr       */
+/*   Updated: 2025/08/02 16:25:28 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -28,9 +28,9 @@ typedef struct s_stack
 t_ft_stat      ft_stack_init(t_stack *stack, size_t el_size);
 t_ft_stat      ft_stack_push(t_stack *stack, void *element);
 void           *ft_stack_top(t_stack *stack);
-void           *ft_stack_pop(t_stack *stack, void (*free_el)(void *));
+void           *ft_stack_pop(t_stack *stack, t_free_fun free_el);
 void           *ft_stack_pop_forget(t_stack *stack);
-void           ft_stack_free(t_stack *stack, void (*free_el)(void *));
+void           ft_stack_free(t_stack *stack, t_free_fun free_el);
 
 // t_vec reserves memory for 8 elements at first
 // it may be beneficial to add a member defining the number of children
@@ -54,10 +54,10 @@ t_ft_stat   ft_tree_append_child(t_tree_node *tree_node, void *element);
 t_tree_node    *ft_tree_access_child(t_tree_node *tree_node, size_t i);
 void           *ft_tree_access_data(t_tree_node *tree_node);
 void           ft_tree_set_data(t_tree_node *tree_node, void *element);
-t_ft_stat      ft_tree_erase_subtree(t_tree_node *tree_node, size_t i, void (*free_el)(void *));
-t_ft_stat      ft_tree_replace_with_child(t_tree_node *tree_node, size_t i, void (*free_el)(void *));
+t_ft_stat      ft_tree_erase_subtree(t_tree_node *tree_node, size_t i, t_free_fun free_el);
+t_ft_stat      ft_tree_replace_with_child(t_tree_node *tree_node, size_t i, t_free_fun free_el);
 t_ft_stat      ft_tree_forget_child(t_tree_node *tree_node, size_t i);
-void           ft_tree_free(t_tree *tree, void (*free_el)(void *));
+void           ft_tree_free(t_tree *tree, t_free_fun free_el);
 
 // I wanted to use t_tree_node to define binary tree and use that
 // to define a red-black and AVL trees
@@ -84,14 +84,14 @@ struct s_rbtree_node
 };
 
 t_ft_stat              ft_rbtree_init(t_rbtree *tree, size_t el_size, t_cmp_fun cmp_el);
-void                   ft_rbtree_free(t_rbtree *tree, void (*free_el)(void *));
+void                   ft_rbtree_free(t_rbtree *tree, t_free_fun free_el);
 
 t_ft_stat              ft_rbtree_insert(t_rbtree *tree, void *element);
 void                   *ft_rbtree_search(t_rbtree *tree, void *element);
-void                   ft_rbtree_delete(t_rbtree *tree, void *element, void (*free_el)(void *));
+void                   ft_rbtree_delete(t_rbtree *tree, void *element, t_free_fun free_el);
 
 t_rbtree_node  *ft_rbtree_search_node(t_rbtree_node *node, void *element);
-void                   ft_rbtree_erase_node(t_rbtree_node *node, void (*free_el)(void *));
+void                   ft_rbtree_erase_node(t_rbtree_node *node, t_free_fun free_el);
 t_rbtree_node  *ft_rbtree_decide(t_rbtree_node *node, int cmp_res);
 
 int                    ft_rbtree_is_black(t_rbtree_node *node);