Я пытаюсь написать код для универсального стека, используя Singlely Linked List на C. Я пытаюсь использовать (void *)
в качестве типа данных в каждой из своих функций, таких как:
node* getNode(void *, size_t);
void append(node **, size_t);
и т. Д.
Структура для каждого узла:
typedef struct linked_list{
void *data;
struct linked_list *next; }node;
В вышеупомянутой функции getNode
я пытаюсь сделать это:
node* getNode(void *data, size_t data_size) {
node *newNode;
newNode = (node *)malloc(sizeof(node));
newNode->next = NULL;
// this line should assign the void *data to the data part of the node
return newNode;}
Я не мог найти, как назначить часть данных, не зная тип данных, а только используя переменную data_size
. Я узнал о функции memcopy
, но даже для этого требуется тип данных.
Пожалуйста, помогите.