libft
Loading...
Searching...
No Matches
vec_new.c
Go to the documentation of this file.
1/* ************************************************************************** */
2/* */
3/* ::: :::::::: */
4/* vec_new.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:44 by tspoof ### ########.fr */
10/* */
11/* ************************************************************************** */
12
13#include "vec.h"
14
15// Allocates init_len * elem_size bytes of memory to dst *memory.
16int vec_new(t_vec *dst, size_t init_len, size_t elem_size)
17{
18 if (!dst || elem_size == 0)
19 return (-1);
20 dst->elem_size = elem_size;
21 dst->alloc_size = elem_size * init_len;
22 dst->len = 0;
23 if (dst->alloc_size == 0)
24 return (-1);
25 dst->memory = malloc(dst->alloc_size);
26 if (!dst->memory)
27 return (-1);
28 return (1);
29}
Definition vec.h:20
size_t alloc_size
Definition vec.h:23
size_t len
Definition vec.h:24
unsigned char * memory
Definition vec.h:21
size_t elem_size
Definition vec.h:22
int vec_new(t_vec *dst, size_t init_len, size_t elem_size)
Creates a new vector.
Definition vec_new.c:16