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

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语言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语言面试会问10个数排序吗,c语言面试最必考的十道试题,求职必看!!!

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

  6. 应聘c语言面试试题,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. Python面试题集合
  2. 人脸对齐--Robust face landmark estimation under occlusion
  3. malloc calloc realloc的对比
  4. Python 面向对象-如何查看类的父类,外部如何获取类的名字
  5. 史上最全 Python Re 模块讲解(一)
  6. [转]一个简单的反射拷贝一份新的实体类
  7. 【解析】在设计软件的模块结构时,()不能改进设计质量
  8. ViewPager,使用Fragment实现
  9. jquery easyui 表单结合对话框
  10. Salesforce:下个财年营收我们有望突破100亿美元
  11. junit测试mysql_使用Junit单元测试及操作MySQL数据库时出现错误及解决方法
  12. python中加注释_python中如何添加注释
  13. 坐标反算计算起始方位角_谁会坐标正算反算的公式,怎么计算两个坐标的方位角...
  14. spring security——学习笔记(day05)-实现自定义 AuthenticationProvider身份认证-手机号码认证登录
  15. Windows 2000/Xp 錯誤編號詳解
  16. tof相机简介及三维坐标转化,plotly画3D点云
  17. 工作簿(Workbook)基本操作应用示例(一)
  18. JavaScript Sets
  19. 疯狂动物城的代码,还需要修改,但有一点雏形
  20. python pexpect 详解

热门文章

  1. 【和谐 OS】来了!鸿蒙现场视频解析
  2. 《数据结构与算法 Python语言描述》 读书笔记
  3. python连载第12篇 for循环 源码+ 答案
  4. 珠江三角洲 芯片恩仇录
  5. kcptun linux 客户端,网络加速暴力工具 - Kcptun 安装使用教程(服务端客户端)
  6. python处理网页弹窗_Selenium2+Python自动化-处理浏览器弹窗(转载)
  7. 消息称淘宝正测试微信支付 需要手动截图扫码支付
  8. 5G iPhone SE起售价399美元 今年有望出货3000万部
  9. 这个80后靠王者荣耀赚到93亿身家
  10. 雷军:小米12 Pro全球首发索尼IMX707