使用整数的scanf进行分段错误

当我尝试使用以下function从用户读取整数输入时,我的C代码中出现了分段错误:

int userChoice = 0, tS; float tR, tW, tP, aP; char title[35], title2[35]; Book *curr; while (userChoice != 9) { printf("1. Determine and print total revenue\n"); printf("2. Determine and print total wholesale cost\n"); printf("3. Determine and print total profit\n"); printf("4. Determine and print total number of sales\n"); printf("5. Determine and print average profit per sale\n"); printf("6. Print book list\n"); printf("7. Add book\n"); printf("8. Delete book\n"); printf("9. Exit the program\n"); scanf("%d", userChoice); ... ... 

每次执行我的程序时,它都允许我输入要分配给userChoice的数字,但之后会立即出现故障。 有帮助吗? 谢谢!

编辑:我得到的确切错误:

 Program received signal SIGSEFV, Segmentaion fault. 0x0000003503256f50 in _IO_vfscanf_internal () from /lib64/libc.so.6 

应该:

 scanf("%d", &userChoice); 

需要&符号将其读入userChoice的位置,而不是userChoice的值。

 scanf("%d", userChoice); 

=>

 scanf("%d", &userChoice);