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 面试题
为什么要有struct关键字
May 08 面试题
C++:memset ,memcpy和strcpy的根本区别
Apr 27 面试题
经典c++面试题三
Jul 08 面试题
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
Apr 28 面试题
linux下进程间通信的方式
Jan 23 面试题
什么是设计模式
Jun 17 面试题
瀑布模型都有哪些优缺点
Jun 23 面试题
用Python写一个for循环的例子
Jul 19 面试题
Java面试题:为什么要用Java
May 11 面试题
高级Java程序员面试要点
Aug 02 面试题
java程序员面试交流
Nov 29 面试题
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的escape()函数代码
2010/08/08 PHP
ThinkPHP文件上传实例教程
2014/08/22 PHP
PHP队列用法实例
2014/11/05 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
JavaScript html5利用FileReader实现上传功能
2020/03/27 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
python设计模式大全
2016/06/27 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
Python Lambda函数使用总结详解
2019/12/11 Python
根据tensor的名字获取变量的值方式
2020/01/04 Python
Python 定义只读属性的实现方式
2020/03/05 Python
numpy库reshape用法详解
2020/04/19 Python
Python devel安装失败问题解决方案
2020/06/09 Python
快速了解Python开发环境Spyder
2020/06/29 Python
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
2015/08/25 面试题
计算机系毕业生推荐信
2013/11/06 职场文书
大学三年的自我评价
2013/12/25 职场文书
好听的队名和口号
2014/06/09 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript