char* str=NULL;
char* str1=NULL;
int index=0;
va_list ap;
va_start(ap, msg);
while(true)
{
str = va_arg(ap, char*);
if(str == NULL)
break;
strcat(str1,str);
}
printf 처럼 구현하려고 printf(char* format, ...)에서
... 부분을 다 더해서 하나의 문자열로 만든다음에 sprintf 두번째 인수로 넘기는 방식으로 만들려는데
가변인수 문자열 리턴받을 때 str = va_arg(ap, char*)로하면 됨? 이건 얕은복사라 안되려나? 깊은 복사하려면 어떻게 해야되?
함수 호출시, 스택에 생성된 지역 변수 및 파라메터의 생성 주기를 이해하지 못하고 있고
str1 을 배열이든 동적할당이든 생성하고 strcat 을 해야지 strcat 이 메모리를 생성해주는것 같냐?
걍 기본이 없음.
니코드의 문제는 str1 이다.