#include <stdio.h>
#include <string.h>
void myStrcat(char* a, char* b)
{
int m = strlen(a);
int n = strlen(b);
for (int i = 0; i <= n; i++)
a[m + 1] = b[i];
}
int main()
{
char* str1 = "Hello ";
char* str2 = "World";
myStrcat(str1, str2);
printf("%s", str1);
return 0;
}
교수님이 준 연습문젠데 여기서 오류를 고치래
str1, str2를 char[]로 고쳐보니까 원소 하나씩 변경은 가능한데 str1 쓰기범위 에러뜨고
그래서 realloc하려니까 메모리 주소가 바껴버려서 a만 바뀌고 str1에는 영향이 없어
내 짧은 지식의 한계가 온거같은데 형들 지식좀 빌려줘
일단 str1 길이가 늘어나지 않으면 방법이 없는거 아냐?
결국 main함수에서 str1을 realloc해주는거밖에 답이 없나?
나라면 strcat을 a + b의 길이를 가진 char* 버퍼를 만들게 하고 거기에 문자열 복사해준다음 리턴 해주는 방향으로 수정할 듯 - dc App
물론 원본 strcat은 a에 작업을 해주는게 맞긴한데... 뭐 고민 좀 해봐 ㅇㅅㅇ - dc App