-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patharray_helper_functions.c
62 lines (58 loc) · 953 Bytes
/
array_helper_functions.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "main.h"
/**
* free_array_of_pointers - free array of allocated pointers
* @array: array of pointers
*/
void free_array_of_pointers(char **array)
{
char **temp = array;
while (array && *array)
{
free(*array);
array++;
}
free(temp);
}
/**
* copy_array_of_strings - hard copy
* @str: array of strings
* Return: allocated new copy array
*/
char **copy_array_of_strings(char **str)
{
char **new_array = NULL;
int i = 0;
while (str[i])
{
i++;
}
new_array = malloc(sizeof(char *) * (i + 1));
i = 0;
while (str[i])
{
new_array[i] = _strcopy(str[i]);
i++;
}
new_array[i] = NULL;
return (new_array);
}
/**
* remove_idx_from_array - remove element from array
* @idx: index of element
* @array: array to remove element from
*/
void remove_idx_from_array(int idx, char **array)
{
int i = idx;
int length = 0;
while (array && array[length])
{
length++;
}
length++;
free(array[i]);
for (; i < (length - 1); i++)
{
array[i] = array[i + 1];
}
}