公司c语言面试题目,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语言面试题目,c语言面试最必考的十道试题,求职必看!!!相关推荐
- c语言的复试笔试题目,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- 面试c语言考题,c语言面试最必考的十道试题,求职必看!!!
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 6.free()函数 问:下面的程序会在用户输入'freeze'的时候出问题,而'zebra'则不会,为什么? #include int main(int ...
- c语言malloc面试题,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 ...
最新文章
- 学习OpenCV——配置CUDA环境
- python输入字符串转换为公式_python从字符串转换为boolean ?
- android studio 使用adb
- hwclock设置日期_linux中时间设置date、hwclock、clock
- LYNC显示用户位置的相关配置
- 转化与流量到底哪一个更重要?
- Spring AOP 增强器获取的源码解析
- 数据预处理 泰坦尼克号_了解泰坦尼克号数据集的数据预处理
- 李航《统计学习方法》-----朴素贝叶斯
- Scala 类和对象
- 【Flink】 Flink 源码之 Buffer Timeout优化
- 去阿里面试被问:如果是MySQL引起的CPU消耗过大,你会如何优化?
- mysql if / case / limit / join / 数据类型 、oracle decode 及其它sql对比
- 对象的可访问性(C++)
- linux回到桌面的命令符_Linux终端命令快捷键汇总
- 苹果cmsV10二开视频+图片+小说网站源码
- 数仓之事实表和维度表
- easyexcel 列头合并_2020-05-19:EasyExcel自定义合并单元格
- office2016 Excel 打开“宏”分三步
- Arm中国开工礼:iPhone + AirPods Pro,我酸了!
热门文章
- 改进程架构,Edge优化浏览器内存问题
- 程序员过关斩将--应对高并发系统有没有通用的解决方案呢?
- .NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5
- 深入浅出 ASP.NET Core 与 Docker 入门课程说明
- .NET Core开发实战(第10课:环境变量配置提供程序)--学习笔记
- 你必须知道的容器监控 (1) Docker自带子命令与Weave Scope
- C#中的Explicit和Implicit了解一下吧
- .net core百万设备连接服务和硬件需求测试
- 我们为什么要搞长沙.NET技术社区(三)
- .NET Core中的验证组件FluentValidation的实战分享