C++的delete的探讨(0分)

  • 主题发起人 主题发起人 hawkfly
  • 开始时间 开始时间
H

hawkfly

Unregistered / Unconfirmed
GUEST, unregistred user!
在BCB5中写一个程序,居然发现如下几个问题,拿出来和大家探讨一下。
struct UserList
{
; ; AnsiString Name;
; ; AnsiString Id;
; ; int Age;
};

struct UserList * MyList;//全局变量

在Form的Create事件中:
MyList =new struct UserList[30];

在Form的onClose事件中:
delete [] MyList;
但当执行onClose事件时,出现程序非法终止的错误。
当改为delete MyList;时,虽然不出错,但有内存泄露(肯定的)
最后我写成delete [] (MyList);
程序不错而且也没有内存泄露了。
但我看了几本书都没有这种写法。
希望大家探讨
 
你现在再把括号删掉,重新rebuild看看,我就不信
另外OnCreate对应的是OnDestroy事件,在OnClose事件之后可能还有其他事件的,所以
在OnClose事件删除可能会出问题,放到OnDestroy里面啦
 
接受答案了.
 
后退
顶部