2012-10-14 65 views
1

新的C,我有這樣的功能:警告:格式 '%d' 需要鍵入 '詮釋*',但實參2的類型爲 '詮釋**'

void getNum(int *n) { 
    scanf("%d", &n); 
} 

而且在主:

int main() { 
    int someNum; 
    getNum(&someNum); 
    return 0; 
} 

這個錯誤的'int **'部分究竟來自哪裏,還有其他問題與我如何傳遞?

+1

您使用'&'以純'int'轉換它的前成'INT *'。在這裏,你已經有了一個'int *'因爲它是你的函數的輸出參數,所以你不需要'&'(除了你在數組前面加'&')。 –

回答

6

唯一的問題是將&n傳遞給scanf:n已經是一個指針,所以你的scanf調用正在傳遞一個指向該指針的指針,因此是警告。

用途:scanf("%d", n);

相關問題