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...

面试题 相关文章推荐
神路信息Java面试题目
Mar 31 面试题
对于没有初始化的变量的初始值可以作怎样的假定
Oct 12 面试题
C/C++ 笔试、面试题目大汇总
Nov 21 面试题
数据库专业英语
Nov 30 面试题
网络方面基础面试题
Nov 16 面试题
什么是属性访问器
Oct 26 面试题
中科创达面试题
Dec 28 面试题
Why we need EJB
Oct 20 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
Jul 27 面试题
Servlet都有哪些方法?主要作用是什么?
Mar 04 面试题
J2EE面试题集锦(附答案)
Aug 16 面试题
Delphi CS笔试题
Jan 04 面试题
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
PHP+javascript液晶时钟
2006/10/09 PHP
php循环输出数据库内容的代码
2008/05/24 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
初识Node.js
2015/03/20 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
JavaScript实现垂直向上无缝滚动特效代码
2016/11/23 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
javascript表单正则应用
2017/02/04 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
vue实现抖音时间转盘
2019/09/08 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
欧洲、亚洲、非洲和拉丁美洲的度假套餐:Great Value Vacations
2019/03/30 全球购物
CSMA/CD介质访问控制协议
2015/11/17 面试题
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
中华在我心中演讲稿
2014/09/13 职场文书
小学数学国培研修日志
2015/11/13 职场文书
2016五一手机促销广告语
2016/01/28 职场文书