我有这段代码
char * oldname = new char[strlen(name) + 1];
memcpy(oldname,name,strlen(name) + 1);
name = new char[strlen(oldname) + strlen(r.name) + 1];
memset(name, '\0', strlen(name));
strcat(name,oldname);
strcat(name," ");
strcat(name,r.name);
我知道在C++中使用memcpy和memset是不好的,但我还没有完全理解如何在C++中使用它们,最好不要使用std。
有人知道吗?谢谢。
strlen(name)
不会很好地工作,除非该字符串已经包含一个正确结束的C字符串! 它不做任何其他事情,只是计算到第一个空字符的所有字符数。 - UncleBens