字符串&malloc&strlen&strcpy
来源:互联网 发布:python 图像的shape 编辑:程序博客网 时间:2024/05/18 03:52
如下程序用于输出“Welcome to Huawei Test”,请指出其中的两处错误。
char * GetWelcome(void){ char * pcWelcome; char * pcNewWelcome; pcWelcome="Welcome to Huawei Test"; pcNewWelcome=(char *)malloc(strlen(pcWelcome)); //1 if(NULL==pcNewWelcome){ return NULL; //2 } strcpy(pcNewWelcome, pcWelcome); //3 return pcNewWelcome; //4}
正确答案: A C
A.1
B.2
C.3
D.4
答案解析:
第一处:malloc动态分配的内存是在堆上的,需要进行free()函数释放,这里假设是分配正确的,这样第四处就可以认为是正确的,因为它还没有释放。 第二处:可以认为是在strcpy函数执行前的自检测,如果为NULL,由实现者决定其返回值,一般为NULL。 第三处:strcpy函数的功能是把从src地址开始且含有’\0’结束符的字符串复制到以dest开始的地址空间。但是在第一处进行动态分配内存的时候使用的是strlen而不是sizeof,这样就少了’\0’结束符,不能正确进行复制操作。 因此,第一处和第三处是错误的。
0 0
- 字符串&malloc&strlen&strcpy
- 解决编译过程中的strcpy/malloc/strlen incompatible警告
- 字符串基本处理函数(strlen,strcpy,strcat)
- 字符串处理(三)strcpy、strncpy和strlen
- 字符串基本处理函数(strlen,strcpy,strcat)
- 自定义字符串函数:strlen,strcat,strcpy,strcmp
- 自定义字符串函数:strlen,strcat,strcpy,strcmp
- 字符串常用操作(strlen,strcpy,strcat,strcmp,strncpy,strncat)
- C语言字符串函数详解 strcpy、strcmp、strcat、strlen、strstr
- 常用C字符串库函数总结(strstr/strlen/strcpy/strcat...)
- 字符串处理函数strcat 、 strcpy 、 strlen、strcmp的源函数
- 字符串操作函数Strcat、Strcpy、Strcmp、Strlen原型
- 字符串函数的实现(StrLen、StrCpy、StrCat、StrReverse)
- 字符串库函数strlen,strcmp,strcpy,strncpy,strcat,strncat自定义实现
- 各种字符串函数(strcpy,strcmp,strlen)之深度剖析
- strlen, strcpy, strcat, strcmp, memset... (字符串操作函数的实现)
- 字符串处理函数(strlen, strcmp, strcat, strcpy)
- strlen、strcpy、strcat等字符串处理函数的实现
- 华为OJ试题整理
- 单元测试框架的简单实现
- 重载运算符
- android studio windows Mac linux下载地址
- Android Volley完全解析(三),定制自己的Request
- 字符串&malloc&strlen&strcpy
- 网络:GET 的使用
- LeetCode(51)- Count and Say
- 支付宝java后台接入简单流程
- 错误:the file 'xxx.app' couldn't be opened because you don't have permission to view it
- SELinux Booleans
- mysql中时间转换
- Asp.net mvc Controller与 View之间的传递
- 命令行svn commit时注释实现换行