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*)로하면 됨? 이건 얕은복사라 안되려나? 깊은 복사하려면 어떻게 해야되?