请哪位高手帮忙看一下这一小段程序!!!在线等待~!~谢谢诶~~~

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:20:10
结构体为:
typedef struct{
char *ch;
int length;
}Hstring;
bool str_assign(Hstring&T, Hstring&S,const int maxsize=20)
{
int i=0,j=0;
T.ch=new char[maxsize];
while(S.ch)
T.ch[i++]=S.ch[j++];
T.ch[i]='\0';
T.length=i;
return true;
}
在debug的时候,到while(S.ch)
T.ch[i++]=S.ch[j++];时,T.ch里面的内容一直都是空的,而i和j都在变化的,也就是说这个赋值语句根本就没有达到目的~~~
请问这句话有错吗?
请帮忙解答一下!!!!

不知道S.ch中是什么。。。何必把while(S.ch)改为while(s.ch[j]!='\0')
既然是数组之间的复制,用1个变量控制数组下标不行吗?

while语句中的条件有问题
把条件换成while(S.ch[i]!=0)就对了。