c语言malloc面试题,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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语言malloc面试题,c语言面试最必考的十道试题,求职必看!!!相关推荐
- 面试c语言考题,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- 公司c语言面试题目,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- c语言考试常考试卷,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- c语言必考面试题,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- c语言面试会问10个数排序吗,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- 应聘c语言面试试题,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- c语言基础知识 面试,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- c语言的复试笔试题目,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- c语言 面试 机试题,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
最新文章
- 秋招必考——Batch Normalization精简解析
- Paddle 环境中 使用LeNet在MNIST数据集实现图像分类
- Android基础建设之Activity,ViewRoot,WindowManager,Window,View
- Web 开发规范 — WSGI
- 3.14-19 wc、iconv、dos2unix、diff、vimdiff、rev
- php文件上传错误代码
- PropertyGrid 控件使用方法
- python中nlp的库_用于nlp的python中的网站数据清理
- python处理文件名_[请教]python的中文文件名处理
- 纳达尔复出迎澳网开门红 直落三盘横扫本土选手
- 利用MessageUI发送邮件
- 基于忆阻器的神经网络应用研究
- python神器_牛逼啊!一个可以随时随地写Python代码的神器
- python用input输入整数列表_Python用input输入列表的方法
- 端口映射不能访问80端口
- 荣耀9青春版能刷鸿蒙系统吗,华为荣耀9青春版刷机教程_荣耀9青春版强刷升级更新系统包...
- 简易版人生重开模拟器开发(python版)
- 如何在当前文件夹打开命令行窗口
- 创造与魔法服务器维护,创造与魔法为什么服务器维护 | 手游网游页游攻略大全...
- linux yum install 失败报错:Transaction check error
热门文章
- heima Oracle day2
- drf5 版本和认证组件
- php endall(),从G_BEGIN_DECLS和 G_END_DECLS说起
- android wear ios 连接,教你如何让Android Wear智能手表兼容iOS系统
- ubuntu php 支持mysql_在ubuntu16.04上安装php7 mysql5.7 nginx1.10并支持http2
- ref获取元素 vue 删除子元素_vue中的 ref 和 $refs
- Apache 的管理及优化web
- python类型转换异常捕捉_Java中的异常
- 端云互联 3.0 击破云原生开发的痛点
- 今天见 | 洞见数据库前沿趋势 DTCC 2020阿里云9大看点早知道