c++的GUI库fltk中,new的对象从不delete,且不造成内存泄漏。内部是怎样实现的呢?

以下是fltk官方帮助文档提供的一个完整的例子:#include<FL/Fl.H>#include<FL/Fl_Window.H>#include<FL/Fl_Box.H... 以下是fltk官方帮助文档提供的一个完整的例子:

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Box.H>
int main(int argc, char **argv) {
Fl_Window *window = new Fl_Window(340,180);
Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");
box->box(FL_UP_BOX);
box->labelfont(FL_BOLD+FL_ITALIC);
box->labelsize(36);
box->labeltype(FL_SHADOW_LABEL);
window->end();
window->show(argc, argv);
return Fl::run();
}

我们看到
Fl_Window *window = new Fl_Window(340,180);
Fl_Box *box = new Fl_Box(20,40,300,100,"Hello, World!");
但是没有delete window和delete box。fltk里面是怎样实现delete的呢?我见过的智能指针都是基于模版实现的。这里面好像没有智能指针。
另外,c语言的time.h中有个函数:char *asctime( const struct tm *ptr ); 返回时间的字符串。注意,此处返回的是指针,难道指针所指的内存空间在堆上吗,如果在函数局部栈上,返回的指针根本没有意义。求大神解答。
展开
 我来答
zjfaok
2015-11-12 · TA获得超过6806个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1604万
展开全部
asctime返回的指针是指向内部维护的静态对象,所以不能两个或多个线程同时调用asctime,否则两个线程都可能得到奇怪的结果
追问
那Fltk中的有new无delete是怎么回事?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式