指针new和delete的一个问题

[复制链接]
查看11 | 回复3 | 2009-7-14 05:19:22 | 显示全部楼层 |阅读模式
如下代码:
#include
int *pPointer;
void SomeFunction()
{
// 让指针指向一个新的整型
pPointer = new int;
*pPointer = 25;
}
void main()
{
SomeFunction(); //为pPointer赋值
cout<<"Value of *pPointer: "<<*pPointer<<endl;
delete pPointer;
}
假如SomeFunction()这个函数被调用两次,该怎么写delete呢?请高手指教。

回复

使用道具 举报

千问 | 2009-7-14 05:19:22 | 显示全部楼层
这样的话你可以在每次调用SomeFunction()的时候先用一次delete,把pPointer初始为0。int * pPointer=0;void SomeFunction(){delete pPointer;pPointer=new int;*pPointer=25;}然后调用就可以了。...
回复

使用道具 举报

千问 | 2009-7-14 05:19:22 | 显示全部楼层
int * pPointer;void SomeFunction(){delete pPointer;pPointer=new int;*pPointer=25;}全局变量自动赋初值 0if(pPointer)不用判断pPointer就是0和非0两种如果是0delete 0是安全的如果不是0执行删除内存...
回复

使用道具 举报

千问 | 2009-7-14 05:19:22 | 显示全部楼层
照着再写一遍啊.void main(){SomeFunction(); //为pPointer赋值cout<<"Value of *pPointer: "<<*pPointer<<endl;delete pPointer;SomeFunction(); //为pPointer赋值cout<<"Value of *pPointe...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行