char* ptr=new char[strlen(i)+strlen(j)+1]; //[]中的数 不管是多少都能正确输出,为什么? 甚至不定义为数组也能正确输出
头都大了 说什么我都没看明白
看我说的是不是你问的
你是char* ptr 所以返回的是个指针
而这个指针里放的是一个地址
然后你strcpy(ptr,i);
strcat(ptr,j);
只是往这个地址里写东西 虽然你char* ptr =new char;也对
但当你读取时人家系统按字符串读取 只看最后的/0在哪 人家也不知道你指针有多大
而你strcat(ptr,j);正好把/0放进去了
所以 你这个只申请一个CHAR空间的指针在(CHAR后面空间 没有人用的情况下)勉强可以通过运行的
是这么 说么?