我的程序編譯正確,但我有問題,當我運行它。第一次scanf(寬度)工作正常,但當我嘗試與另一個scanf(身高)我得到分段錯誤11. 我可以做這個程序工作沒有使用指針。 (另外我需要限制檢查功能,因爲我必須在我的程序中一次又一次地使用它)。檢查用戶輸入之間的一定限制,如果不再詢問,直到輸入正確的輸入
#include <stdio.h>
void limitChecker(int x, int y, int* input);
int main(void)
{
int* x;
int* y;
printf("Enter the width of the windows. (3 - 5) : ");
scanf("%d", x);
limitChecker(3, 5, x);
printf("width: %d \n", *x);
printf("Enter the height of the windows. (2 - 4) : ");
scanf("%d", y);
limitChecker(2, 4, y);
printf("Height: %d \n", *y);
}
void limitChecker(int x, int y, int* input)
{
while(!(*input>=x && *input<=y))
{
printf("Please enter a value between (%d - %d): ",x,y);
scanf("%d", input);
}
}
我不能因爲它的指針(如果我添加&我在編譯期間出錯)這是我的錯誤「格式'%d'期望類型'int *',但參數2類型'int **'」 – Nakib
好吧,我看到。當你實際聲明它們是'int x,y'時,你只需創建'x'和'y'指針。 – Zak
你知道他們是變數。我遇到了指針輸入的問題(你會感到困惑,因爲我在函數中使用了相同的名稱x和x以及主函數) – Nakib