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类似。

总结一句,基础不牢,地动山摇。

最新文章

  1. freemarker string= null
  2. &amp;12 二叉搜索树
  3. iOS 在类别里添加成员变量的方法:objc_setAssociatedObject
  4. IT部门能力评估...
  5. 【JavaScript】微信适配的Head
  6. 倒置字符串s中各字符的位置
  7. SGU 275 To xor or not to xor(高斯消元)
  8. Android中AppWidget的分析与应用:AppWidgetProvider .
  9. Linux学习记录--命名管道通信
  10. VC学习笔记: 1. Window程序内部运行机制
  11. CSS3属性详解(图文教程)
  12. [Swift]LeetCode831. 隐藏个人信息 | Masking Personal Information
  13. Django之auth模块
  14. 【C#】await &amp; Result DeadLock
  15. 【转载】linux top命令查看内存及多核CPU的使用讲述
  16. 列式数据库~clickhouse日常管理
  17. How Xtuner E3 works for BMW 520d Diagnosis and initialization of CBS service
  18. Linux命令:zip
  19. corntab被黑记录
  20. 美团热修复Robust的踩坑之旅-使用篇

热门文章

  1. jsp 中获取自定义变量
  2. Python学习笔记(二)一一一字典总结
  3. 修复 Ubuntu 中“Unable to lock the administration directory (/var/lib/dpkg/)”
  4. CentOS 6.5 下安装redis
  5. android仿QQ的SlideMenu
  6. pta函数作业
  7. java线程(3)——详解Callable、Future和FutureTask
  8. 【bzoj3488】[ONTAK2010]Highways DFS序+树上倍增+树状数组
  9. AGC016C +/- Rectangle(构造)
  10. 【题解】ZJOI2008骑士