#include #include #include void strcat333(char *s1, char *s2, char **result) { if (s1 == NULL || s2 == NULL || result == NULL) { printf("No null arguments\n"); return; } int s1_len = strlen(s1); int s2_len = strlen(s2); int res_len = s1_len + s2_len + 1; // +1 for '\0' char *res_str = (char *) malloc(res_len); if (res_str == NULL) { printf("Malloc failed\n"); return; } char *pos_ptr = res_str; for (int i = 0; i < s1_len; i++) { *pos_ptr = *s1; pos_ptr++; s1++; } for (int j = 0; j <= s2_len; j++) { *pos_ptr = *s2; pos_ptr++; s2++; } *result = res_str; } int main(int argc, char **argv) { char *str1 = "CSE"; char *str2 = "333"; char *res; strcat333(str1, str2, &res); printf("%s\n", res); free(res); }