我有此代碼C++當量爲對char memset的*
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);
據我所知,它是一種沒有沒有使用的memcpy和memset但我不完全理解如何用C使用此++,優選不性病。
有誰知道嗎?謝謝。
看起來您可能已經爲名稱分配了一個太少的字符。而且我不明白爲什麼你首先用零填充數組,如果你打算在其後覆蓋它。 (第一個strcat只需要第一個字符爲空,strcpy甚至不需要,這兩個函數都是空字符串)。哦,'strlen(name)'不能很好地工作,除非字符串已經包含正確終止的C字符串!除了統計第一個空字符以外的所有字符,它不會執行其他任何操作。 – UncleBens 2010-01-24 23:35:42