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