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

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语言面试题目,c语言面试最必考的十道试题,求职必看!!!相关推荐

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

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

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

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

  3. c语言malloc面试题,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 ...

最新文章

  1. 学习OpenCV——配置CUDA环境
  2. python输入字符串转换为公式_python从字符串转换为boolean ?
  3. android studio 使用adb
  4. hwclock设置日期_linux中时间设置date、hwclock、clock
  5. LYNC显示用户位置的相关配置
  6. 转化与流量到底哪一个更重要?
  7. Spring AOP 增强器获取的源码解析
  8. 数据预处理 泰坦尼克号_了解泰坦尼克号数据集的数据预处理
  9. 李航《统计学习方法》-----朴素贝叶斯
  10. Scala 类和对象
  11. 【Flink】 Flink 源码之 Buffer Timeout优化
  12. 去阿里面试被问:如果是MySQL引起的CPU消耗过大,你会如何优化?
  13. mysql if / case / limit / join / 数据类型 、oracle decode 及其它sql对比
  14. 对象的可访问性(C++)
  15. linux回到桌面的命令符_Linux终端命令快捷键汇总
  16. 苹果cmsV10二开视频+图片+小说网站源码
  17. 数仓之事实表和维度表
  18. easyexcel 列头合并_2020-05-19:EasyExcel自定义合并单元格
  19. office2016 Excel 打开“宏”分三步
  20. Arm中国开工礼:iPhone + AirPods Pro,我酸了!

热门文章

  1. 改进程架构,Edge优化浏览器内存问题
  2. 程序员过关斩将--应对高并发系统有没有通用的解决方案呢?
  3. .NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5
  4. 深入浅出 ASP.NET Core 与 Docker 入门课程说明
  5. .NET Core开发实战(第10课:环境变量配置提供程序)--学习笔记
  6. 你必须知道的容器监控 (1) Docker自带子命令与Weave Scope
  7. C#中的Explicit和Implicit了解一下吧
  8. .net core百万设备连接服务和硬件需求测试
  9. 我们为什么要搞长沙.NET技术社区(三)
  10. .NET Core中的验证组件FluentValidation的实战分享