segmentation fault using scanf with integer
I am getting a segmentation fault in my C code when trying to read integer input from the user with the following functon:
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);
...
...
Every time I execute my program, it allows me to enter the number to be assigned to userChoice, but seg faults immediately after. Any help? Thanks!
Edit: The exact error I'm getting i:
Program received signal SIGSEFV, Segmentaion fault.
0x0000003503256f50 in _IO_vfscanf_internal () from /lib64/libc.so.6
Solution 1:
Should be:
scanf("%d", &userChoice);
Need the ampersand to read it into the location of userChoice, and not the value of userChoice.