该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

6、free()函数

问:下面的程序会在用户输入’freeze’的时候出问题,而’zebra’则不会,为什么?

#include int main(int argc, char *argv[]) {

char *ptr = (char*)malloc(10);

if(NULL == ptr)

{

printf("\n Malloc failed \n");

return -1;

}

else if(argc == 1)

{

printf("\n Usage \n");

}

else

{

memset(ptr, 0, 10);

strncpy(ptr, argv[1], 9);

while(*ptr != 'z')

{

if(*ptr == '')

break;

else

ptr++;

}

if(*ptr == 'z')

{

printf("\n String contains 'z'\n");

// Do some more processing }

free(ptr);

}

return 0; }

答:这里的问题在于,代码会(通过增加“ptr”)修改while循环里“ptr”存储的地址。当输入“zebra”时,while循环会在执行前被终止,因此传给free()的变量就是传给malloc()的地址。但在“freeze”时,“ptr”存储的地址会在while循环里被修改,因此导致传给free()的地址出错,也就导致了seg-fault或者崩溃。

7、*和++操作

问:下面的操作会输出什么?为什么?

#include int main(void) {

char *ptr = "Linux";

printf("\n [%c] \n",*ptr++);

printf("\n [%c] \n",*ptr);

return 0; }

答:输出结果应该是这样:

[L] [i]

因为“++”和“*”的优先权一样,所以“*ptr++”相当于“*(ptr++)”。即应该先执行ptr++,然后才是*ptr,所以操作结果是“L”。第二个结果是“i”。

C语言程序员面试100题,c语言面试最必考的十道试题,求职必看!!!相关推荐

  1. 面试c语言考题,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  2. c语言malloc面试题,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  3. 公司c语言面试题目,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  4. c语言考试常考试卷,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  5. c语言必考面试题,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  6. c语言面试会问10个数排序吗,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  7. 应聘c语言面试试题,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  8. c语言基础知识 面试,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  9. c语言的复试笔试题目,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

  10. c语言 面试 机试题,c语言面试最必考的十道试题,求职必看!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...

最新文章

  1. Cocos2dx源码记录(1) CCGLProgram
  2. Three.js学习笔记 – “我和小伙伴都惊呆了”的特效和Three.js初探
  3. selenium python 安装
  4. @FeignClient 接口调用
  5. javascript 学习教程
  6. POJ 1850 Code(组合数学)
  7. java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配
  8. 不同符号的两个整数求余和取模的计算技巧(规律)
  9. 记录一个前端架构的想法
  10. 这个连“炒菜的油”都不放过的“吝啬”男人,却用“吝啬”创造了世界奇迹!...
  11. 编程学不来就去当产品经理,没那么简单!
  12. 帝国cms如何域名html的专题,帝国cms怎么生成html网站地图
  13. php tp框架,tp框架是什么意思
  14. python实用性自己设计_用Python设计PCR引物: Primer3-py 初识
  15. 行人重识别论文阅读13-Parameter Sharing Exploration and Hetero-center Triplet Loss for Visible-Thermal Person
  16. 更改win7密钥及方法
  17. 【bzoj2959】长跑【LCT+并查集】
  18. 如何隐藏、显示Excel工作表中的公式
  19. 风口下的远程办公:钉钉微信死磕,百度趁势入场
  20. 邻接表生成模型头文件C语言

热门文章

  1. java电影购票系统_Java Swing实现电影购票系统项目
  2. matlab 设计 希尔伯特变换器,基于Matlab的FIR型希尔伯特变换器设计
  3. Win 10 搭建 EasyDarwin 流服务器
  4. Mac绿联USB转以太网无法连接解决方法
  5. sftp非交互式每日定时拉取增量数据文件至本地合并至存量
  6. Tableau 连接mysql详细教程
  7. 普元EOS7.5生成入参为数组的WebService接口
  8. 学习数据库(1)——初始数据库
  9. 使用标尺工具获取某点的坐标
  10. Arduino IDE 烧录 ESP8266教程