В следующем блоке кода я создаю указатель на структуру, чтобы я мог предоставить несколько переменных для обработчика сигнала gtk, для которого автоматически устанавливается g_free()
структура, когда обработчик отключен.
Вторая часть malloc
снова возвращает переменную и отправляет новый указатель на новый обработчик сигнала.Будет ли это работать?
Просто после прочтения я предполагаю, что он оставит первые данные структуры на месте у указателя, и создаст новый указатель, в котором я смогу изменить данные позже, все при правильной утилизации памяти позже.
Зная, что malloc
вряд ли так просто, я задаюсь вопросом, есть ли что-то, что я пропускаю, или следует принять во внимание.
signaldata * s;
s = (signaldata *) g_malloc(sizeof(signaldata *));
s->col = 0; s->secondaryCol = -1; s->model = GTK_TREE_MODEL(itemModel);
g_signal_connect_data(firstWidget,"edited",(GCallback) treeview_text_edited,s, (GClosureNotify) g_free, 0);
s = (signaldata *) g_malloc(sizeof(signaldata *));
s->col = 1; s->secondaryCol = -1; s->model = GTK_TREE_MODEL(itemModel);
g_signal_connect_data(secondWidget,"edited",(GCallback) treeview_text_edited,s, (GClosureNotify) g_free, 0);