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++笔试题
Mar 20 面试题
杭州时比特电子有限公司SQL
Aug 22 面试题
.NET remoting中对象激活的两种方式
Jun 08 面试题
网络体系结构及协议的定义
Mar 13 面试题
木马的传播途径主要有哪些
Apr 08 面试题
C#怎么让一个窗口居中显示?
Oct 20 面试题
linux面试题参考答案(11)
May 01 面试题
介绍一下mysql的日期和时间函数
Mar 28 面试题
正隆泰信息技术有限公司上机题
Jun 14 面试题
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
Sep 26 面试题
Java Servlet的主要功能和作用是什么
Feb 14 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
Oct 30 面试题
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动态变静态原理
2006/11/25 PHP
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP 实用代码收集
2010/01/22 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
基于Vuejs的搜索匹配功能实现方法
2018/03/03 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
详解基于webpack&gettext的前端多语言方案
2019/01/29 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
canvas实现俄罗斯方块的方法示例
2018/12/13 HTML / CSS
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
数控技术专业推荐信
2013/11/01 职场文书
计算机专业大学生的自我评价
2013/11/14 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书