Add -Wpedantic option for compilation to Makefile to catch all mistakes.
Cast void* to char* for any arithmetic done.
Split lines that are too long to fit the 80 char limit of the 42 Norm.
CC := cc
-CFLAGS := -Wall -Wextra -Werror
+CFLAGS := -Wall -Wextra -Werror -Wpedantic -std=c99
AR := ar
RM := rm -f
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/09 17:14:49 by ljiriste #+# #+# */
-/* Updated: 2023/12/11 10:21:49 by ljiriste ### ########.fr */
+/* Updated: 2023/12/11 20:00:39 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
return (NULL);
if (index >= vec->size)
return (NULL);
- return (vec->vec + vec->el_size * index);
+ return ((char *)vec->vec + vec->el_size * index);
}
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/09 17:10:39 by ljiriste #+# #+# */
-/* Updated: 2023/12/11 10:24:50 by ljiriste ### ########.fr */
+/* Updated: 2023/12/11 19:59:50 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
return (ft_vec_erase_range(vec, 1, index, free_el));
}
-t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index, void (*free_el)(void *))
+t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index,
+ void (*free_el)(void *))
{
void *p;
if (!vec || index + count > vec->size || index > SIZE_MAX - count)
return (invalid_input);
vec->size -= count;
- ft_memmove(vec->vec + index, vec->vec + vec->el_size * (index + count),
- vec->el_size * (vec->size - index));
+ ft_memmove((char *)vec->vec + index,
+ (char *)vec->vec + vec->el_size * (index + count),
+ vec->el_size * (vec->size - index));
if (free_el)
{
- p = vec->vec + vec->size * vec->el_size;
- while (p < vec->vec + (vec->size + count) * vec->el_size)
+ p = (char *)vec->vec + vec->size * vec->el_size;
+ while ((char *)p < (char *)vec->vec
+ + (vec->size + count) * vec->el_size)
{
free_el(p);
- p += vec->el_size;
+ p = (char *)p + vec->el_size;
}
}
return (success);
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/09 17:37:13 by ljiriste #+# #+# */
-/* Updated: 2023/12/11 10:21:49 by ljiriste ### ########.fr */
+/* Updated: 2023/12/11 20:01:30 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
{
while (i < vec->size)
{
- free_el(vec->vec + i * vec->el_size);
+ free_el((char *)vec->vec + i * vec->el_size);
++i;
}
}
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/09 16:50:57 by ljiriste #+# #+# */
-/* Updated: 2023/12/11 10:23:44 by ljiriste ### ########.fr */
+/* Updated: 2023/12/11 19:53:35 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
}
else if (vec->capacity == 0)
{
- if(ft_vec_reserve(vec, V_DEFAULT_CAPACITY))
+ if (ft_vec_reserve(vec, V_DEFAULT_CAPACITY))
return (alloc_fail);
}
else
return (ft_vec_insert_range(vec, element, 1, index));
}
-t_arr_stat ft_vec_insert_range(t_vec *vec, void const *element, size_t count, size_t index)
+t_arr_stat ft_vec_insert_range(t_vec *vec, void const *element,
+ size_t count, size_t index)
{
if (count == 0)
return (success);
return (alloc_fail);
}
if (index < vec->size)
- ft_memmove(vec->vec + vec->el_size * (index + count),
- vec->vec + vec->el_size * index, vec->el_size * (vec->size - index));
- ft_memcpy(vec->vec + vec->el_size * index, element, vec->el_size * count);
+ ft_memmove((char *)vec->vec + vec->el_size * (index + count),
+ (char *)vec->vec + vec->el_size * index,
+ vec->el_size * (vec->size - index));
+ ft_memcpy((char *)vec->vec + vec->el_size * index, element,
+ vec->el_size * count);
if (index > vec->size)
vec->size = index;
++vec->size;
/* By: ljiriste <ljiriste@student.42prague.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2023/12/09 13:58:15 by ljiriste #+# #+# */
-/* Updated: 2023/12/11 10:22:24 by ljiriste ### ########.fr */
+/* Updated: 2023/12/11 20:04:34 by ljiriste ### ########.fr */
/* */
/* ************************************************************************** */
t_arr_stat ft_vec_reserve(t_vec *vec, size_t capacity);
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_insert_range(t_vec *vec, const void *element, size_t count, size_t index);
+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_erase(t_vec *vec, size_t index, void (*free_el)(void *));
-t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index, void (*free_el)(void *));
+t_arr_stat ft_vec_erase_range(t_vec *vec, size_t count, size_t index,
+ void (*free_el)(void *));
void *ft_vec_access(t_vec *vec, size_t index);
#endif