delete[] p出错
wwqna 2006-05-19 02:02:35 #include <iostream>
using namespace std;
void split(char Names[], int);
int main()
{
char * names = "what is your name";
int len = strlen(names);
split(names, len);
return 0;
}
void split(char Names[], int lens)
{
int old = 0;
int i = 0;
for (i = 0; i < lens; i++)
{
if (Names[i] == '\0')
{
return;
}
else if (Names[i] == ' ')
{
char * subchars = new char[i - old];
memcpy(subchars, Names + old, i - old + 1);
subchars[i - old] = '\0';
cout << subchars <<endl;
//下面该句出错,不用memcpy操作,下面该句又正确
delete[] subchars;
old = i + 1;
}
}
char * subchars2 = new char[i - old + 1];
memcpy(subchars2, Names + old, i - old);
subchars2[i - old] = '\0';
cout << subchars2 <<endl;
delete[] subchars2;
}
请那位解释一下