Hello World.exe 中 0x0F828F0E (ucrtbased.dll) 的未处理异常:0xC0000005:访问冲突写入位置 0x00000002
Unhandled exception at 0x0F828F0E (ucrtbased.dll) in Hello World.exe: 0xC0000005: Access violation writing location 0x00000002
我是C++新手,昨晚开始学习了
我需要帮助解决以下错误:
Hello World.exe 中 0x0F828F0E (ucrtbased.dll) 的未处理异常: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;
};
如果你看一下scanf_s
documentation,你会发现你要读入数据的变量写在&
之后。 &
取变量的地址,实际上scanf_s
需要知道把结果写到内存的什么地方。
因此,您应该像这样修复您的代码:
// Note '&a' instead of 'a'
scanf_s("%d", &a);
也就是说,在 C++ 中,您可能需要考虑 std::cin
来将数据读入变量,例如:
int a{};
std::cin >> a;
请注意,在这种情况下,无需使用 &
(address-of)运算符。
我是C++新手,昨晚开始学习了
我需要帮助解决以下错误:
Hello World.exe 中 0x0F828F0E (ucrtbased.dll) 的未处理异常: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;
};
如果你看一下scanf_s
documentation,你会发现你要读入数据的变量写在&
之后。 &
取变量的地址,实际上scanf_s
需要知道把结果写到内存的什么地方。
因此,您应该像这样修复您的代码:
// Note '&a' instead of 'a'
scanf_s("%d", &a);
也就是说,在 C++ 中,您可能需要考虑 std::cin
来将数据读入变量,例如:
int a{};
std::cin >> a;
请注意,在这种情况下,无需使用 &
(address-of)运算符。