Одним из способов является использование memcpy
. В частности, вы, вероятно, хотели бы memcpy(data, clock->getTime(), sizeof(date_time))
.
Другой способ & mdash; наверное, лучше, теперь, когда я думаю об этом & mdash; использовать обычное задание:
*((date_time*)data) = *(clock->getTime());
Это обрабатывает data
как date_time *
и присваивает значение объекту date_time
, на который он указывает.
(Примечание: в обоих приведенных выше фрагментах кода я предполагаю, что clock->getTime()
возвращает date_time *
. Это правильно?)
Кстати, я должен отметить, что data = malloc(sizeof(date_time));
полностью заменит исходный void * data
, который был передан. Ваш абонент никогда не увидит ячейку памяти, на которую указывает data
, поскольку указатель передается по значению.