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

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. VideoCapture 读取视频文件,显示视频(帧)信息
  2. 开源分布式数据库RadonDB的核心技术与实现
  3. java中会存在内存泄漏吗,请简单描述
  4. 【数据结构----笔记5】插入排序算法之【希尔排序算法】
  5. JavaScript闭包初相识
  6. 贪心----多元Huffman编码问题
  7. 关于如何在Android、Java等非微软平台上建立高信任的SharePoint应用程序
  8. 网页视频之H264打包为fmp4调研
  9. Hadoop大数据开发基础课后答案
  10. java自身的rsa算法效率低下问题
  11. Mlp-Mixer 阅读笔记
  12. Delphi网络游戏外挂制作
  13. java坐标排序_几种实现经纬度查询排序
  14. 页面报错$injector:unpr
  15. Html5 学习笔记 【PC固定布局】 实战5 咨询页面 侧栏
  16. 在论文中加入(制作)目录方法
  17. Echars 折线图 自动向右平移显示数据(数据量大的时候适应)
  18. 简单模拟struts框架,了解strusts的框架实现机制
  19. 2019GPLT L2-032 彩虹瓶 (25 分)
  20. html邮件怎么发送邮件,HTML邮件怎么发送邮件

热门文章

  1. 微软开源的浏览器自动化工具-Playwright
  2. 斐波那契数列和斐波那契数
  3. 使用realsense D435i实现机械臂对物体的自动抓取总结
  4. 制作自己的CTPN训练集
  5. 从零开始的Nginx详解(2)【Nginx-HTTP服务器】
  6. php调用chromium截图,chromium截图实现
  7. 微信公众号开发,清除微信内置浏览器缓存
  8. 校招潜规则,泄密太多我担心大厂HR封杀我
  9. Linux下安装anaconda
  10. 菜鸟自学02:下载参考基因组及构建bowtie2索引