C/C++有关内存的思考题


Posted in 面试题 onDecember 04, 2015
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, “hello world”);
printf(str);
}
请问运行Test 函数会有什么样的结果?
答:程序崩溃。
因为GetMemory 并不能传递动态内存,Test 函数中的 str 一直都是 NULL。
strcpy(str, “hello world”);将使程序崩溃。
char *GetMemory(void)
{
char p[] = “hello world”;
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
请问运行Test 函数会有什么样的结果?
答:可能是乱码。
因为GetMemory 返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原现的内容已经被清除,新内容不可知。
void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, “hello”);
printf(str);
}
请问运行Test 函数会有什么样的结果?
答:(1)能够输出hello;(2)内存泄漏
void Test(void)
{
char *str = (char *) malloc(100);
strcpy(str, “hello”);
free(str);
if(str != NULL)
{
strcpy(str, “world”);
printf(str);
}
}
请问运行Test 函数会有什么样的结果?
答:篡改动态内存区的内容,后果难以预料,非常危险。
因为free(str);之后,str 成为野指针,if(str != NULL)语句不起作用。

Tags in this post...

面试题 相关文章推荐
普通PHP程序员笔试题
Jan 01 面试题
Java中实现多态的机制是什么?
Dec 07 面试题
外企C语言笔试题
Nov 10 面试题
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
Mar 19 面试题
武汉英思工程科技有限公司–ORACLE面试测试题目
Apr 30 面试题
杭州联环马网络笔试题面试题
Aug 04 面试题
杭州龙健科技笔试题.net部分笔试题
Jan 24 面试题
标记环介质访问控制协议
Mar 27 面试题
某公司面试题
Mar 05 面试题
网友共享的几个面试题关于Java和Unix等方面的
Sep 08 面试题
Java中各种基本数据类型的默认值都是什么
Dec 22 面试题
SOA的常见陷阱或者误解是什么
Oct 05 面试题
C语言基础笔试题
Apr 27 #面试题
南京迈特望C/C++面试题
Jul 09 #面试题
C语言怎样定义和声明全局变量和函数最好
Nov 26 #面试题
C,C++的几个面试题小集
Jul 13 #面试题
Java工程师面试集锦之Spring框架
Jun 16 #面试题
2019年Java 最常见的 面试题
Oct 19 #面试题
2019年Java面试必问之经典试题
Sep 12 #面试题
You might like
ThinkPHP3.1查询语言详解
2014/06/19 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
js实现三级联动效果(简单易懂)
2017/03/27 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
python邮件发送smtplib使用详解
2020/06/16 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
中国双语服务优势的在线购票及活动平台:247tickets
2018/10/26 全球购物
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
歌颂祖国的演讲稿
2014/05/04 职场文书
支部组织生活会方案
2014/06/10 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
高三英语教学计划
2015/01/23 职场文书
关于运动会的广播稿
2015/08/19 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS