c strcat 성능 개선

떵떵·2022년 6월 26일
0

c의 strcat()에 대해 보는중 strcat의 느린 이유에 대한 글을 읽었다.

strcat()는 기존 문자열에 최종 문자열을 붙이기 할때마다 기존 문자열의 끝을 탐색하여 뒤에 이어 붙인다.

*s1 = "abc"
*s2 = malloc(sizeof(char) * 10000);

for (int i = 0; i < 10000; i++)
{
	strcat(s2, s1);
}

i = 0: "abc"
i = 1: "abcabc"

i = 5: "abcabcabcabc"
이처럼 i가 늘어남에 따라 strcat이 붙이기 할 문자열의 null까지 읽는 시간이 늘어난다.

개선

붙이기 할때마다 끝 포인터를 저장하는 방식으로 개선을 해보자

0개의 댓글