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

面试题 相关文章推荐
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
Sep 15 面试题
什么是"引用"?申明和使用"引用"要注意哪些问题?
Mar 03 面试题
几个SQL的面试题
Mar 08 面试题
动态密码技术
Oct 18 面试题
C#实现启动一个进程
Oct 01 面试题
Linux管理员面试题 Linux admin interview questions
Jul 08 面试题
当当网软件测试笔试题
Nov 24 面试题
Ajxa常见问题都有哪些
Mar 26 面试题
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
May 20 面试题
线程同步的方法
Nov 23 面试题
Unix如何在一行中运行多个命令
May 29 面试题
J2ee常用的设计模式?说明工厂模式
May 21 面试题
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
phpmyadmin 常用选项设置详解版
2010/03/07 PHP
PHP中如何调用webservice的实例参考
2013/04/25 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
PHP设计模式之工厂模式详解
2017/10/24 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
js变量提升深入理解
2016/09/16 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
Angular 2父子组件数据传递之@ViewChild获取子组件详解
2017/07/04 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
详解vue-property-decorator使用手册
2019/07/29 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
Python3计算三角形的面积代码
2017/12/18 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python中函数参数匹配模型详解
2019/06/09 Python
python中的decimal类型转换实例详解
2019/06/26 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
旅游管理毕业生自荐信
2013/11/05 职场文书
生产文员岗位职责
2014/04/05 职场文书
五年级学生评语大全
2014/12/26 职场文书
导游词欢迎词
2015/02/02 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
vue3获取当前路由地址
2022/02/18 Vue.js