libft
Loading...
Searching...
No Matches
vec_push.c
Go to the documentation of this file.
1
/* ************************************************************************** */
2
/* */
3
/* ::: :::::::: */
4
/* vec_push.c :+: :+: :+: */
5
/* +:+ +:+ +:+ */
6
/* By: tspoof <tspoof@student.hive.fi> +#+ +:+ +#+ */
7
/* +#+#+#+#+#+ +#+ */
8
/* Created: 2022/12/12 22:48:37 by tspoof #+# #+# */
9
/* Updated: 2022/12/15 15:11:55 by tspoof ### ########.fr */
10
/* */
11
/* ************************************************************************** */
12
13
#include "
vec.h
"
14
15
// Takes in a vector and a pointer to an element
16
// to be pushed to the end of the vector.
17
int
vec_push
(
t_vec
*dst,
void
*src)
18
{
19
if
(!dst || !src)
20
return
(-1);
21
if
(dst->
len
* dst->
elem_size
+ dst->
elem_size
> dst->
alloc_size
)
22
if
(!
vec_resize
(dst, dst->
len
* 2))
23
return
(-1);
24
ft_memcpy
(&dst->
memory
[dst->
len
* dst->
elem_size
], src, dst->
elem_size
);
25
dst->
len
++;
26
return
(1);
27
}
ft_memcpy
void * ft_memcpy(void *dst, const void *src, size_t n)
Copies memory to destination.
Definition
ft_memcpy.c:15
s_vec
Definition
vec.h:20
s_vec::alloc_size
size_t alloc_size
Definition
vec.h:23
s_vec::len
size_t len
Definition
vec.h:24
s_vec::memory
unsigned char * memory
Definition
vec.h:21
s_vec::elem_size
size_t elem_size
Definition
vec.h:22
vec.h
vec_resize
int vec_resize(t_vec *src, size_t target_len)
Resizes vector.
Definition
vec_resize.c:17
vec_push
int vec_push(t_vec *dst, void *src)
Push element to the end of the vector.
Definition
vec_push.c:17
src
vec_push.c
Generated by
1.9.7