プログラムは正しくコンパイルされますが、実行すると問題が発生します。最初の 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);
}
}