有人能告訴我什麼是錯誤的以下?將字符添加到字符數組C++
我想添加字符到一個字符數組。 name是指向MyString類中的字符數組的指針。
void MyString::add_chars(char* c)
{
if(l < strlen(c)+strlen(name))
name = resize(name, l, sizeof(c));
int i,j;
for(i=0; i<strlen(c); i++) {
name[i+l-1] = c[i];
l++;
}
}
char* MyString::resize(char* vptr, int currentsize, int extra) {
char* temp = new char[currentsize + extra];
int i;
for (i = 0; i < currentsize; i++) {
temp[i] = vptr[i];
}
vptr = temp;
return vptr;
}
而且在主:
MyString g ("and");
g.add_chars("baasdf");
cout << g.get_name() << "\n";
但GET_NAME返回 「和b」。我如何修復我的代碼?
編輯: 更新代碼,還是同樣的結果..
void StringList::add_chars(char* c)
{
char* my_new_string = resize(name, l, sizeof(char));
if(my_new_string != NULL)
{
delete [] name;
name = my_new_string;
}
int i,j;
for(i=0; i<strlen(c); i++) {
name[i+l-1] = c[i];
l++;
}
name[l-1] = '\0';
}
char* StringList::resize(char* vptr, int currentsize, int extra) {
char* temp = new char[currentsize + extra + 1];
int i;
for (i = 0; i < currentsize; i++) {
temp[i] = vptr[i];
}
vptr = temp;
return vptr;
}
哇,這是很多錯誤。您是否嘗試在調試器中逐步瀏覽並觀察變量和參數?這是調試的第一步。不問我們。 – 2012-04-20 18:33:24