【发布时间】:2013-05-29 18:24:43
【问题描述】:
我在下面编写了一个 drawCircle 函数,但是随着更多的圆圈被绘制/重绘,内存使用量大大增加,所以我假设某处存在内存泄漏,但我似乎无法弄清楚。我尝试在函数末尾删除实例,但这没有帮助。
void drawCircle(cairo_surface_t *container, int x, int y, int radius, float r, float g, float b, float a)
{
cairo_t *cairoInstance;
cairoInstance = cairo_create(container);
cairo_set_source_rgba(cairoInstance, r, g, b, a);
cairo_arc(cairoInstance, x, y, radius, 0, 2*M_PI);
cairo_stroke_preserve(cairoInstance);
cairo_fill_preserve(cairoInstance);
//delete cairoInstance;
gtk_widget_queue_draw_area(GTK_WIDGET(frame2), 0, 0, WINDOW_WIDTH, WINDOW_HEIGHT);
}
有什么想法吗? 提前致谢。
【问题讨论】:
-
使用 valgrind 确定内存泄漏的根源
标签: c++ memory memory-leaks cairo