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

面试题 相关文章推荐
PHP如何去执行一个SQL语句
Mar 05 面试题
线程的基本概念、线程的基本状态以及状态之间的关系
Oct 26 面试题
利达恒信公司.NET笔试题面试题
Mar 05 面试题
什么是URL
Dec 13 面试题
西安启天科技有限公司网络工程师面试题笔试题
Jun 12 面试题
linux面试题参考答案(7)
Jul 24 面试题
Linux的文件类型
Mar 07 面试题
Linux管理员面试题 Linux admin interview questions
Nov 01 面试题
软件测试题目
Feb 27 面试题
UML设计模式笔试题
Jun 07 面试题
介绍一下Python下range()函数的用法
Nov 07 面试题
J2EE系统只能是基于web
Sep 08 面试题
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导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
PHP实现简单日历类编写
2020/08/28 PHP
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
javascript数组输出的两种方式
2015/01/13 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
浅谈Node.js:fs文件系统模块
2016/12/08 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
Python实现程序判断季节的代码示例
2019/01/28 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
斯凯奇美国官网:SKECHERS美国
2016/08/20 全球购物
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
周年庆典邀请函范文
2014/01/23 职场文书
料理师求职信
2014/01/30 职场文书
会计专业自我鉴定
2014/02/10 职场文书
低碳环保倡议书
2014/04/14 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
七年级语文教学反思
2016/03/03 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
详解Oracle块修改跟踪功能
2021/11/07 Oracle