C-printf实现
void myprintf(const char *format,...) { va_list argptr;//参数列表 va_start(argptr, format); size_t ACTSIZE = _vscprintf(format, argptr);//内容长度,根据它给size赋值 char*buffer = (char*)malloc(ACTSIZE + 1);//分配内存空间 memset(buffer, 0, ACTSIZE + 1);//赋初值 vsnprintf(buffer, ACTSIZE + 1, format, argptr);//将值加进去 va_end(argptr); printf("%s\r\n", buffer); free(buffer);//释放内存 buffer = nullptr; } int main() { myprintf("%s,%s","123","456"); char s1tr[2000]; for(int i =0;i<2000;i++) s1tr[i]='a'; s1tr[1999]=NULL; myprintf("111 %s",s1tr); return 0; }
人间有真情,人间有真爱。