代码如下: char *r; r = malloc(strlen(s) + strlen(t) + 1); if(!r) { cout << "memory low" << endl; exit(1); } strcpy(r, s); strcat(r, t); /* r用完之后 */ free(r); 注意: strlen()函数并不计算结束标志。 参考: C陷阱与缺陷