簡體   English   中英

預期為“int *”,但參數在 C 中屬於“int”類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM