扫描期间C中的分段错误
我试图扫描一个整数用于我的程序。 但是我的程序在编译期间给了我分段错误,这是给我错误的部分:
int main(void) { int totalHeight=0, floorWidth=0, amountOfStories, amountWindowForTop, amountWindowForMiddle, amountWindowForBottom, windowHeight, middleWindowWidth, topWindowWidth, bottomWindowWidth, minimumHeight, minimumWidth; char topFloorWindowContent, middleFloorWindowContent, bottomFloorWindowContent, windowBorder, floorBorder; int tempMax; printf("please enter how many stories your building would like to have: "); scanf("%d",&amountOfStories); minimumHeight=amountOfStories*6+1; while((totalHeight<minimumHeight)||((totalHeight%amountOfStories)!=1)) { printf("please enter the totalHeight (minimum %d): ",minimumHeight); scanf("%d",&totalHeight); } printf("please enter how many window building would have for top floor: "); scanf("%d",amountWindowForTop); printf("please enter how many window building would have for middle floors: ");
现在我编译后的程序只运行到amoutWindowForTop上的scanf后输入值,它只是给我分段错误我不明白为什么。 因为我没有使用指针,所以为什么它会给我这个错误呢?一切似乎都是为了我这是输出
please enter how many stories your building would like to have: 5 please enter the totalHeight (minimum 31): 31 please enter how many window building would have for top floor: 2 Segmentation fault
你错过了,
线
scanf("%d",amountWindowForTop);
应该
scanf("%d", &amountWindowForTop); //---------^
你错过了
scanf("%d",amountWindowForTop);
这一定是
scanf("%d",&amountWindowForTop);
错误的原因是&被称为运算符的地址,因此在scanf中丢失它意味着你在哪里放置你的值意味着地址是必需的,因为它指定了我们必须保留值的变量的地址。 分段错误错误通常是我们每当遇到与地址有关的任何问题时得到的。 希望对你有用。
你错过了
scanf("%d", amountWindowForTop); ^Place & operator
你错过了&
scanf("%d",&amountWindowForTop); ^