Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка c++ может кто знает.

15122021 Профи (765), на голосовании 3 недели назад
Вызвано исключение по адресу 0x00007FFB33457CC1 (ucrtbased.dll) в my improvized project.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x0000000000000000

 #include  
#include "ref.h"
class Hello_world
{
public:
const char* x;
private:
int switcher = 1;
public:
void hello_world_function()
{
if (switcher > 0)
std::cout << x << std::endl;
else
text_out("you dont have permission");
}
};
int main()
{
Hello_world hello_world;
static int choose_number = 2;
//if you want to do some math make choose_number = 1
//else if you want to start Hello World programm make choose_number = 2
//else if you want back to choose make choose_number = 0
if (choose_number == 0)
{
text_out("chose the option...");
space();
text_out("open code and follow instructions to choose the option");
space();
}
else if (choose_number == 1)
{
static int number = 10;
//make number = (your number)
static int& ref = number;
text_out("initialization program...");
space();
text_out("let's make some math");
space();
sum_and_out(ref);
space();
text_out("open code and follow instructions if you want to switch the number of math operation");
space();
text_out("if you want back to choose make choose_number = 0");
space();
text_out("programm execute: enter");
}
else if (choose_number == 2)
{
hello_world.x = "Hello World!";
hello_world.hello_world_function();
space();
Hello_world hello_world2;
hello_world.x = "Hello Planet!";
hello_world2.hello_world_function();
space();
text_out("if you want back to choose make choose_number = 0");
}
std::cin.get();
}
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (9508) 1 месяц назад
 #include  
#include

class HelloWorld {
public:
std::string x;

private:
int switcher = 1;

public:
void helloWorldFunction() {
if (switcher > 0) {
std::cout << (x.empty() ? "Null value" : x) << std::endl;
} else {
text_out("you don't have permission");
}
}
};

void displayHelloWorld(HelloWorld& hw, const std::string& message) {
hw.x = message;
hw.helloWorldFunction();
}

int main() {
HelloWorld helloWorld;
static int chooseNumber = 2;

if (chooseNumber == 2) {
displayHelloWorld(helloWorld, "Hello World!");

HelloWorld helloWorld2;
displayHelloWorld(helloWorld2, "Hello Planet!");
}

std::cin.get();
return 0;
}
doctor Гуру (3842) 1 месяц назад
прогони через дебагер и чекни чо именно ошибку вызывает, в чом вопрос та?
15122021Профи (765) 1 месяц назад
я пытался и там меня послало в дебри какого-то hpp файла а я в таком не разбираюсь и там же была ошибка текст которой я выслал. ну я в итоге нашёл ошибку, там где я вызывал функцию класса второй раз я забыл добавить 2 в название
Jurijus Zaksas Искусственный Интеллект (445726) 1 месяц назад
Сдаеццо мне, что ты нигде не выделяешь место под свой х, и пытаешься писать в NULL.
15122021Профи (765) 1 месяц назад
вообще я уже нашёл ошибку. А разве переменная const char* не выделяет место?
Jurijus Zaksas Искусственный Интеллект (445726) 4 или 8 байт под указатель выделяет, конечно. А вот сам указатель будет NULL, скорее всего.
Похожие вопросы