【发布时间】:2014-09-08 23:17:30
【问题描述】:
在调查崩溃时,我遇到了以下代码:
FILE * RejectFile = fopen("filename", "a+");
// other code happens
delete RejectFile;
我的理解是你只对new创建的对象调用delete。当然,有些旧代码确实很糟糕,所以这很可能是错误的,但我不确定。这是有效的代码吗?
【问题讨论】:
-
应该是 FILE * 而不是 FILE 并且不,您不应该进行删除。我的理解是 fopen() 提供的 FILE 指针是运行时拥有的运行时事物。可能只是指向作为运行时环境一部分的静态分配内存区域的指针。
-
啊,原来是FILE *,我刚才复制错了。