minishell
vect_remove.c
Go to the documentation of this file.
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* vect_remove.c :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: kfujita <kfujita@student.42tokyo.jp> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2023/01/28 00:36:24 by kfujita #+# #+# */
9 /* Updated: 2023/01/28 01:35:37 by kfujita ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12 
13 #include "ft_vect.h"
14 #include "../ft_mem/ft_mem.h"
15 
16 bool vect_remove(t_vect *vect, size_t index)
17 {
18  if (vect->len <= index)
19  return (false);
20  if ((index + 1) < vect->len)
21  ft_memmove(vect_at(vect, index), vect_at(vect, index + 1),
22  (vect->len - index + 1) * vect->elemsize);
23  vect->len -= 1;
24  return (true);
25 }
void * ft_memmove(void *dst, const void *src, size_t n)
Definition: ft_memmove.c:16
void * vect_at(const t_vect *vect, size_t index)
Definition: vect_at.c:15
Definition: ft_vect.h:24
size_t elemsize
Definition: ft_vect.h:27
size_t len
Definition: ft_vect.h:26
bool vect_remove(t_vect *vect, size_t index)
Definition: vect_remove.c:16