1
我必须在queue
中实施排队操作。在节点结构中,datatype
的dataPtr
是void*
。 这是我的代码,但在调用这个函数时,我该如何传递参数?当函数具有void *参数时如何在函数中传递参数?
typedef struct node
{
void* dataptr;
struct node* next;
} QUEUE_NODE;
typedef struct
{
QUEUE_NODE* front;
QUEUE_NODE* rear;
int count;
}QUEUE;
//createqueue
QUEUE* createQueue(void)
{
QUEUE* queue;
queue = (QUEUE*)malloc(sizeof(QUEUE));
if (queue)
{
queue->front = NULL;
queue->rear = NULL;
queue->count = 0;
}
return queue;
}
//Enqueue
bool enqueue(QUEUE* queue, void* itemptr)
{
QUEUE_NODE* newptr;
if (!(newptr = (QUEUE_NODE*)malloc(sizeof(QUEUE_NODE))))
return false;
newptr->dataptr = itemptr;
newptr->next = NULL;
if (queue->count == 0)
queue->front = newptr;
else
queue->rear->next = newptr;
(queue->count)++;
queue->rear = newptr;
printf("inserted value is%d\n", newptr->dataptr);
return true;
}
类似地,不需要转换由'malloc'返回的'void *'指针,它可以被分配给任何指针类型。 –