C++ 动态分配内存有疑问

来源:百度知道 编辑:UC知道 时间:2024/09/23 18:32:57
// 这是使用应用程序向导生成的 VC++
// 应用程序项目的主项目文件。

#include "stdafx.h"
#include "iostream.h"
#using <mscorlib.dll>
#include <tchar.h>

using namespace System;
int Fnl();

// 这是此应用程序的入口点
int _tmain(void)
{
// TODO: 请用您自己的代码替换下面的示例代码。
int a=Fnl();
cout<<"The value of a is :"<<a<<endl;
return 0;
}
int Fnl(){
int *p=new int(5);
return *p;
}

高手请指点~~~
既然已经new出一个整型的空间,应该要delete它,但是应该在哪里delete呢,写在哪个位置
可以在return *p;下面写delete p吗?
为什么?希望详细解??
谢谢
谢谢lacuna的回答,
虽然这是书里的一道改错题,但是我觉得new 出来的空间确实是用过啊,*p就相当被赋值等于5了.
再如果,我不用中间变量result呢,好什么好办法???

是我看错了
我看成了int[5];
在return后delete 是不可行的
不额外使用变量的方法我想不出来
除非你把delete的操作拿到外面来做
但是这样的程序很ugly,不建议采用