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

面试题 相关文章推荐
包装类的功能、种类、常用方法
Jan 27 面试题
2019年c语言经典面试题目
Aug 17 面试题
Android interview questions
Dec 25 面试题
解释DataSet(ds) 和 ds as DataSet 的含义
Jul 27 面试题
DataList 能否分页,请问如何实现?
May 03 面试题
请解释virtual关键字的含义
Jun 17 面试题
关于.NET, HTML的五个问题
Aug 29 面试题
一些网络技术方面的面试题
May 01 面试题
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
Nov 10 面试题
params有什么用
Mar 01 面试题
说一下Linux下有关用户和组管理的命令
Jan 04 面试题
在weblogic中发布ejb需涉及到哪些配置文件
Jan 17 面试题
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
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
javascript 操作符(~、&、|、^、)使用案例
2014/12/31 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
webpack4 从零学习常用配置(小结)
2019/05/28 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
基于Python实现的ID3决策树功能示例
2018/01/02 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
求职自荐信范文格式
2013/11/29 职场文书
煤矿班组长的职责
2013/12/25 职场文书
趣味游戏活动方案
2014/02/07 职场文书
小松树教学反思
2014/02/11 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
努力学习演讲稿
2014/05/10 职场文书
学校端午节活动方案
2014/08/23 职场文书
如何写早恋检讨书
2014/09/10 职场文书
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python