MS笔试中的一个关于函数返回的“小”题
2024-08-26 12:40:49
Which of following C++ code is correct ?
A.
int f()
{
int *a = new int();
return *a;
}
B.
int *f()
{
int a[3] = {1,2,3};
return a;
}
C.
vector<int> f()
{
vector<int> v(3);
return v;
}
D.
void f(int *ret)
{
int a[3] = {1,2,3};
ret = a;
return ;
}
这题考察的是程序中的内存分配,A中指针a是位于栈上,a指向的内存位于堆中,能够返回整型但是会有内存泄漏。
B中数组a为栈上数据,函数返回后自动释放,故返回a指针不能返回数组数据。
C中返回的的是向量,过程实际上是通过临时变量拷贝到指定的变量中,正确。
而D错误与B类似。
总结一句,基础不牢,地动山摇。
最新文章
- freemarker string= null
- &;12 二叉搜索树
- iOS 在类别里添加成员变量的方法:objc_setAssociatedObject
- IT部门能力评估...
- 【JavaScript】微信适配的Head
- 倒置字符串s中各字符的位置
- SGU 275 To xor or not to xor(高斯消元)
- Android中AppWidget的分析与应用:AppWidgetProvider .
- Linux学习记录--命名管道通信
- VC学习笔记: 1. Window程序内部运行机制
- CSS3属性详解(图文教程)
- [Swift]LeetCode831. 隐藏个人信息 | Masking Personal Information
- Django之auth模块
- 【C#】await &; Result DeadLock
- 【转载】linux top命令查看内存及多核CPU的使用讲述
- 列式数据库~clickhouse日常管理
- How Xtuner E3 works for BMW 520d Diagnosis and initialization of CBS service
- Linux命令:zip
- corntab被黑记录
- 美团热修复Robust的踩坑之旅-使用篇
热门文章
- jsp 中获取自定义变量
- Python学习笔记(二)一一一字典总结
- 修复 Ubuntu 中“Unable to lock the administration directory (/var/lib/dpkg/)”
- CentOS 6.5 下安装redis
- android仿QQ的SlideMenu
- pta函数作业
- java线程(3)——详解Callable、Future和FutureTask
- 【bzoj3488】[ONTAK2010]Highways DFS序+树上倍增+树状数组
- AGC016C +/- Rectangle(构造)
- 【题解】ZJOI2008骑士