Các bạn góp ý hộ mình. Con trỏ retval trong hàm concat này mình ko delete, liệu có hại gì ko?
Code:
#include <stdio.h> #include <conio.h> #include <stdarg.h> #include <string.h> char* concat (const char *str, ...) { va_list arg; char *retval, *p; int len = 0; if (str == NULL) return NULL; len = strlen (str); va_start (arg, str); while ((p=va_arg(arg,char *))!=NULL) len += strlen (p); va_end(arg); retval = new char [len + 1]; if (retval == NULL) return NULL; (void)strcpy(retval, str); va_start(arg, str); while ((p=va_arg(arg,char *)) != NULL) (void)strcat(retval, p); va_end (arg); return retval; } main() { printf("%s", concat("Ly ", "Tieu ", "Long ", "269", NULL)); getch(); }
Comment