![](/img/trans.png)
[英]*expected 'int *' but argument is of type 'int **'* warning in c
[英]expected 'int *' but argument is of type 'int' in C
我有這樣的代碼通過使用堆棧來反轉單鏈表。 但是當我調用 pushStack function 時,我收到這樣的錯誤; “預期為'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 function;
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 定義為 integer。 據我了解,我需要將列表轉換為多鏈表,因此通過這種方式,我可以將 studentnumber 作為指針傳遞,但我希望它保留為單鏈表。 我能做什么,如果有人有意見,我真的很感激。
好吧,您遇到的錯誤是因為當您像這樣調用pushStack
function 時: pushStack(stk, ptr->studentnumber)
,您指定的第二個參數是int
,但您需要int *
。 所以它必須是這樣的: pushStack(stk, &ptr->studentnumber)
。 這僅涉及您遇到的錯誤,我不確定您提供的代碼是否符合預期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.