minishell
vect_reserve.c
Go to the documentation of this file.
1
/* ************************************************************************** */
2
/* */
3
/* ::: :::::::: */
4
/* vect_reserve.c :+: :+: :+: */
5
/* +:+ +:+ +:+ */
6
/* By: kfujita <kfujita@student.42tokyo.jp> +#+ +:+ +#+ */
7
/* +#+#+#+#+#+ +#+ */
8
/* Created: 2023/01/28 00:32:55 by kfujita #+# #+# */
9
/* Updated: 2023/01/30 14:33:13 by kfujita ### ########.fr */
10
/* */
11
/* ************************************************************************** */
12
13
#include "
ft_vect.h
"
14
#include "../ft_mem/ft_mem.h"
15
#include "stdlib.h"
16
17
bool
vect_reserve
(
t_vect
*vect,
size_t
newcap)
18
{
19
void
*p_new;
20
21
if
(vect->
elemsize
== 0 || newcap <= vect->len)
22
return
(
false
);
23
if
(newcap == 0)
24
p_new = NULL;
25
else
26
{
27
p_new =
ft_calloc_nofill
(newcap, vect->
elemsize
);
28
if
(p_new == NULL)
29
return
(
false
);
30
ft_memmove
(p_new, vect->
p
, vect->
elemsize
* vect->
len
);
31
free(vect->
p
);
32
}
33
vect->
p
= p_new;
34
vect->
cap
= newcap;
35
return
(
true
);
36
}
ft_calloc_nofill
void * ft_calloc_nofill(size_t count, size_t size)
Definition:
ft_calloc.c:17
ft_memmove
void * ft_memmove(void *dst, const void *src, size_t n)
Definition:
ft_memmove.c:16
ft_vect.h
t_vect
Definition:
ft_vect.h:24
t_vect::cap
size_t cap
Definition:
ft_vect.h:25
t_vect::elemsize
size_t elemsize
Definition:
ft_vect.h:27
t_vect::p
void * p
Definition:
ft_vect.h:28
t_vect::len
size_t len
Definition:
ft_vect.h:26
vect_reserve
bool vect_reserve(t_vect *vect, size_t newcap)
Definition:
vect_reserve.c:17
libft
ft_vect
vect_reserve.c
Generated by
1.9.1