预期'int *'但参数在 C 中属于 'int' 类型



我有一个这样的代码,可以通过使用堆栈来反转单链表。但是当我调用pushStack函数时,我会得到这样的错误"应为"int*",但参数的类型为"int">

{
// store Node addresses in stack
struct STACK *stk;
struct Student* ptr = head;
while (ptr != NULL) {
pushStack(stk, ptr->studentnumber);
ptr = ptr->next;
}

// print data from stack
while (!emptyStack(stk)) {
printf(stk->top);
pop(); // pop after print
}
}

这是我的pushStack函数;

bool pushStack (struct STACK* stack, int *dataInPtr)
{
//  Local Definitions 
STACK_NODE* newPtr;
//  Statements 
newPtr = (STACK_NODE* ) malloc(sizeof(STACK_NODE));
if (!newPtr)
return false;
newPtr->dataPtr = dataInPtr; 
newPtr->link    = stack->top; 
stack->top      = newPtr; 
(stack->count)++; 
return true;
}   // pushStack 

我在结构中将studentnumber定义为一个整数。据我所知,我需要将列表转换为多链接列表,因此通过这种方式,我可以将studentnumber作为指针传递,但我希望它保持为单链接列表。如果有人有意见,我该怎么办

好吧,您得到的错误是因为当您这样调用pushStack函数时:pushStack(stk, ptr->studentnumber),您指定的第二个参数是int,但您需要int *。所以它必须是这样的:pushStack(stk, &ptr->studentnumber)。这只涉及你得到的错误,我不确定你提供的代码是否符合预期。

相关内容

  • 没有找到相关文章

最新更新