I have a working C code. It connnects 2 char arrays and prints the solution out.
But I have a dynamic memory management here (malloc) and have to free it now.
Can someone tell me where to free and why?
char * stringcat(const char * str1, const char * str2) {
int length_1 = strlength(str1);
int length_2 = strlength(str2);
int length = length_1 + length_2 + 1;
char * newstr = malloc(sizeof(char) * length);
for(int i=0; i < length; i++)
{
char charToCopy = '\0';
if(i < length_1)
{
charToCopy = *(str1 + i);
} else if(i < (length_1 + length_2)) {
charToCopy = *(str2 + i - length_1);
}
*(newstr + i) = charToCopy;
}
return newstr;
}
int strlength(char *c) {
int count = 0;
while(*(c + count) != '\0') {
count++;
}
return count;
}
int main() {
char surname[] = "Simon";
char lastname[] = "Arndt";
printf("%s\n", stringcat(surname, lastname));
return 0;
}