下面是一个面C语言面试题,该程序有一些错误,麻烦诸位找出来!?

2025-04-07 00:28:52
推荐回答(2个)
回答1:

strlen计算字符串长度,不包括结尾默认的\0。hello,world本来10个字节,加个\0,就11个字节。但是malloc获得的大小只有10个字节。所以顺序交换过来就装不下了。要装下他也需要11个字节。

回答2:

dest = (char * ) malloc(len+1);
strlen 计算的是字符串的长度,没有加最后 ‘/0’的长度