9

不定项选择题 9 /86

请找出下面代码中的所有错误。说明:以下代码的功能是把一个字符串倒序,如“abcd”倒序后变为“dcba”。
1 #include "string.h"
2 int main() 
3 {
4    char *src = "hello,world";
5    char *dest = NULL;
6    int len = strlen(src);
7    dest = (char *)malloc(len);
8    char *d = dest;
9    char *s = src[len];
10   while (len-- != 0)
11      *d++ = *s--;
12   printf("%s", dest);
13   return 0;
14     
15}

参考答案

第7行要为'\0'分配一个空间
第9行改成char * s = &src[len-1]
第12行前要加上*d = '\0'
第13行前不加free(dest),程序结束时也会释放空间