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
Should be:
scanf("%d", &userChoice);
Need the ampersand to read it into the location of userChoice, and not the value of userChoice.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With