关于malloc的一个小疑点

关于malloc的一个小问题?三次输出的内容是什么?为什么?char*c1(char*)malloc(128)constchar*c2123456

关于malloc的一个小问题?
三次输出的内容是什么?为什么?

char   *c1   =   (char   *)malloc(128);
const   char   *c2   =   "123456 ";
strcpy(c1,c2);
cout   < <   c1;
char   *c1   =   (char   *)malloc(256);
cout   < <   c1   ;
strcat(c1,c2);
cout   < <   c1;



[解决办法]
输出
123456
未知
未知

c1指向的字符串里没有结束符,
strcat,cout的结果都不确定