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

面试题 相关文章推荐
JSF如何进行表格处理及取值
Aug 06 面试题
如何让Java程序执行效率更高
Jun 25 面试题
c/c++某大公司的两道笔试题
Feb 02 面试题
南京软件公司的.net程序员笔试题
Aug 31 面试题
2019年分享net面试的经历和题目
Aug 07 面试题
简述进程的启动、终止的方式以及如何进行进程的查看
Feb 20 面试题
软件测试工程师笔试题带答案
Mar 27 面试题
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
May 20 面试题
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
Mar 12 面试题
Java面试题:请说出如下代码的输出结果
Apr 22 面试题
UNIX特点都有哪些
Apr 05 面试题
如何现实servlet的单线程模式
Aug 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
PHP syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
php自动加载代码实例详解
2021/02/26 PHP
仅IE6/7/8中innerHTML返回值忽略英文空格的问题
2011/04/07 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
python调用新浪微博API项目实践
2014/07/28 Python
详解Python的Django框架中的通用视图
2015/05/04 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
linux下python使用sendmail发送邮件
2018/05/22 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
pygame实现非图片按钮效果
2019/10/29 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
html5清空画布方法(三种)
2017/10/16 HTML / CSS
传播学毕业生求职信
2013/10/11 职场文书
元旦联欢会主持词
2014/03/26 职场文书
经贸专业毕业生求职信范文
2014/05/01 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
2015年国培研修感言
2015/08/01 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS