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

面试题 相关文章推荐
Yahoo-PHP面试题4
May 05 面试题
Java面试题:请问一下代码输出是什么
May 27 面试题
是什么让J2EE适合用来开发多层的分布式的应用
Jan 16 面试题
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
Apr 28 面试题
在C语言中"指针和数组等价"到底是什么意思?
Mar 24 面试题
大整数数相乘的问题
Jul 22 面试题
如何在发生故障的节点上重新安装 SQL Server
Mar 14 面试题
为什么group by 和order by会使查询变慢
May 16 面试题
逻辑链路控制协议
Oct 01 面试题
主要的Ajax框架都有什么
Nov 14 面试题
String s = new String(“xyz”);创建了几个String Object?
Aug 05 面试题
德尔福集团DELPHI的笔试题
Feb 22 面试题
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
咖啡的化学
2021/03/03 咖啡文化
php文件包含的几种方式总结
2019/09/19 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
javascript json2 使用方法
2010/03/16 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
Javascript函数式编程语言
2015/10/11 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
python 函数中的参数类型
2020/02/11 Python
Python通过文本和图片生成词云图
2020/05/21 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
Flask处理Web表单的实现方法
2021/01/31 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
预备党员入党感言
2015/08/01 职场文书
公司会议开幕词
2016/03/03 职场文书