Access violation error C

I am starting and I am learning C and C ++. I am trying to run this code in Visual Studio 2012 Express for Windows Desktop. This is a simple calculator that I wrote myself! But whenever I run it, I get this error Unhandled exception at 0x519600B4 (msvcr110d.dll) in Calculator.exe: 0xC0000005: Access violation writing location 0x00000000.

Forgive me for any mistakes (this is my first time). Thanks!

 #include<stdio.h> #include<conio.h> main () { int num1, num2, result; char oper; scanf_s("%d%c%d", &num1, &oper, &num2); switch(oper) { case '+': result = num1 + num2; printf("%d", result); break; case '-': result = num1 - num2; printf("%d", result); break; case '*': result = num1 * num2; printf("%d", result); break; case '/': result = num1 / num2; printf("%d", result); break; default: printf("ERROR: INVALID OR UNRECOGNISED INPUT\n"); break; } _getch(); } 
+6
source share
1 answer

When using scanf_s for a %c format string, you must specify how many characters you want to read:

 scanf_s("%d%c%d", &num1, &oper, 1, &num2); 

The documentation describes the following:

Unlike scanf and wscanf, scanf_s and wscanf_s require specifying the buffer size for all input parameters of types c, C, s, S or string control sets, which are enclosed in []. The buffer size in characters is passed as an additional parameter immediately after the pointer to the buffer or variable.

+15
source

Source: https://habr.com/ru/post/947195/


All Articles