Необработанное исключение в 0x0F828F0E (ucrtbased.dll) в Hello World.exe: 0xC0000005: место записи нарушения доступа 0x00000002

-4

Я новичок в C++, и я начал учиться прошлой ночью

Мне нужна помощь со следующей ошибкой:

Необработанное исключение в 0x0F828F0E (ucrtbased.dll) в Hello World.exe: 0xC0000005: место записи нарушения доступа 0x00000002.

Мой код:

#include <iostream>
#include <conio.h>
#include <stdio.h>

using namespace std;

int main() {

cout << "CUMPARATURI" << endl;

int mere = 3 + 1;
int banane = 16 / 4;

cout << endl;
cout << "Avem " << mere << " mere" << endl;
cout << "Avem " << banane << " banane" << endl;

int a = 16, b = 18;

cout << endl;
cout << "Valoarea lui a este " << a << endl;
cout << "Dati o valoarea noua lui a : "; cin >> a;
cout << "Noua valoarea a lui a este : " << a << endl;

cout << endl;
cout << "Acesta este primul rand \nAcesta este al 2-lea \nAcesta este al 3-lea";
cout << endl;

printf("\nAceasta este valoarea lui a: %d ", a);
printf("\nLocatia lui a este %d \nDa-i valoare noua lui a : ", &a);
scanf_s("%d", a);
printf("Noua valoare a lui a este : %d",a);

_getche();
return 0;
};

спросил(а) 2017-07-07T14:41:00+03:00 2 года, 12 месяцев назад
0
54

Если вы посмотрите на документацию scanf_s, вы увидите, что переменные, которые вы хотите прочитать, записываются после &. & Принимает адрес переменной, на самом деле scanf_s должен знать, где записать результат в память.

Итак, вы должны исправить свой код следующим образом:

// Note '&a' instead of 'a'
scanf_s("%d", &a);

Тем не менее, в C++ вы можете рассмотреть std::cin для чтения данных в переменных, например:

int a{};
std::cin >> a;

Обратите внимание, что в этом случае нет необходимости использовать оператор & (адрес).

ответил(а) 2017-07-07T14:48:00+03:00 2 года, 12 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема