-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patharrjoin.c
More file actions
43 lines (39 loc) · 690 Bytes
/
arrjoin.c
File metadata and controls
43 lines (39 loc) · 690 Bytes
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
#include "tokens.h"
/**
* arrjoin - join two arrays
* @arr1: the first array
* @arr2: the second array
*
* Return: a dynamically-allocated array of the elements from arr1 and arr2
*/
char **arrjoin(char **arr1, char **arr2)
{
char **new;
size_t arr1_len = 0, arr2_len = 0, new_len;
if (arr1)
{
while (arr1[arr1_len])
++arr1_len;
}
if (arr2)
{
while (arr2[arr2_len])
++arr2_len;
}
new = malloc(sizeof(char *) * (arr1_len + arr2_len + 1));
if (!new)
return (NULL);
new_len = 0;
if (arr1)
{
while (*arr1)
new[new_len++] = _strdup(*arr1++);
}
if (arr2)
{
while (*arr2)
new[new_len++] = _strdup(*arr2++);
}
new[new_len] = NULL;
return (new);
}