4
char* concat(char* str1, char* str2, int free_old)
6
if(!str1 || !str2) return NULL;
7
size_t len1 = strlen(str1);
8
size_t len2 = strlen(str2);
9
char* result = (char*) malloc(len1+len2+1);
10
if(!result) return NULL;
12
strcpy(result+len1, str2);
13
if(free_old) free(str1);
17
char* concatn(char* str1, char* str2, size_t len2, int free_old)
19
if(!str1 || !str2) return NULL;
20
size_t len1 = strlen(str1);
21
char* result = (char*) malloc(len1+len2+1);
22
if(!result) return NULL;
24
strncpy(result+len1, str2, len2);
25
result[len1+len2] = '\0';
26
if(free_old) free(str1);
30
void freestr(char** ptr) {