我对gdk docs的印象是gdk_color_copy
分配内存:
制作颜色结构的副本。必须使用释放结果 gdk_color_free()。
未来版本gdk_rgba_copy
显然会:
新分配的GdkRGBA,其内容与rgba
相同
尽管如此,我在代码中遇到内存错误,其中包含以下内容(my_struct.color
为GdkColor *
,初始化为NULL):
if (my_struct.color != NULL) {
gdk_color_free(my_struct.color);
}
my_struct.color = gdk_color_copy(color);
以下似乎有效:
if (my_struct.color == NULL) {
my_struct.color = malloc(sizeof(GdkColor));
}
memcpy(my_struct.color, color, sizeof(GdkColor));