【发布时间】:2018-11-13 02:59:15
【问题描述】:
我正在尝试使用 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 函数,但即使这样也需要数据类型。
请帮忙。
【问题讨论】:
标签: c adt dynamic-memory-allocation void-pointers