void *malloc(size_t size);
说明:malloc 向系统申请分配指定size个字节的内存空间。返回类型是 void* 类型。void* 表示未确定类型的指针。C,C++规定,void* 类型可以强制转换为任何其它类型的指针
等价描述:
T.ch=(char*)malloc((S1.length+S2.length)*sizeof(char))
if(!T.ch){..........}
T.ch=(char*)malloc((S1.length+S2.length)*sizeof(char)))
把后面的给T的ch成员
(char*)malloc
把malloc函数的返回值强行转换成char指针.比如cout<<(int)'a';强制转换a为数字,就是ascii编码
(S1.length+S2.length)
*
sizeof(char)
cout<<sizeof(char);就知道是多少.前面是s1和s2的length成员相加然后再乘以char的大小.
总结:
将S1和S2的成员相加并得到两者字符长度,然后转换成字符指针给予T的ch成员
条件检测ch成员是否得到具有长度的地址,ch在初始化前肯定是NULL也就是0,这样才能用!ch来判断两个成员是否有实际意义.
ch的作用是开辟一个S1,S2的length成员两者相加后这种大小的空间,length可能不是字符串也许是记录某个地方大小,因为后面乘以char占用内存大小数字.如果是字符串可以直接sizeof(S2.length)而直接得到成员占用大小.
[
本帖最后由 天使梦魔 于 2012-4-26 12:12 编辑 ]