Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.01.2015
Сообщений: 4

Зависание при запуске проекта "Unhandled exception"

02.01.2015, 15:40. Показов 703. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Unhandled exception at at 0x76D32F71 in ConsoleApplication3.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0102F6C0.
В с++ почти полный чайник. Имеем только базовые знания о ЯП. В основном delphi. Помогите парни. Программа должна визуализировать принцип работы своппинга
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#include "stdafx.h"
#include <iostream>
#include <string>
 #include <stdio.h>
typedef unsigned char byte;
typedef unsigned short word; // при условии, что sizeof(short) == 2
typedef unsigned int dword; // при условии, что sizeof(int) == 4
typedef long long unsigned int qword; //при условии, что sizeof(long long int) == 8;
 
class Page
{
public:
    unsigned char& operator[] (int idx)
    {
        return page[idx];
    }
 
private:
    static const int pageSize = 4 * 1024; 
    unsigned char page[pageSize];
};
 
class PGEntries
{
public:
    static const int tableSize = 1024; 
    virtual ~PGEntries() {}
 
protected:
};
 
class PTE : public PGEntries
{
public:
    PTE()
    {
        table = new Page*[tableSize];
 
        for (int i = 0; i < tableSize; i++)
        {
            table[i] = new Page;
        }
    }
 
    ~PTE() {/* освободить память */}
 
    Page* operator [] (int idx)
    {
        return table[idx];
    }
 
private:
    Page **table;
};
 
class PDE : public PGEntries
{
public:
    PDE()
    {
        table = new PTE*[tableSize];
 
        for (int i = 0; i < tableSize; i++)
        {
            table[i] = new PTE;
        }
    }
 
    ~PDE() { /* освободить память */}
 
    PTE* operator[] (int idx)
    {
        return table[idx];
    }
 
private:
    PTE **table;
 
};
 
class Descriptor {}; 
class GDT {}; 
typedef int Selector;
 
class VAddress
{
public:
    VAddress(Selector sel, dword addr)  :  _addr(addr), _sel(sel), PDEmask(0xFFC00000), PTEmask(0x3FF000), pageOffsetMask(0xFFF) {}
    // перегрузить конструктор для 64 битных адресов
 
    int getPDEIndex() const
    {
        return _addr & PDEmask;
    }
 
    int getPTEIndex() const
    {
        return _addr & PTEmask;
    }
 
    int getOffset() const
    {
        return _addr & pageOffsetMask;
    }
 
private:
    Selector _sel;
    dword _addr; // _addr можно сделать как union{qword, dword} для хранения 64 битных адресов
    dword PDEmask;
    dword PTEmask;
    dword pageOffsetMask;
 
};
 
class VMemmory
{
public:
    VMemmory(PGEntries *mainTbl) : CR3(mainTbl) {}
 
    void setByte (const VAddress &addr, byte val)
    {
        PTE *pte = (*(dynamic_cast<PDE*> (CR3))) [addr.getPDEIndex()];
        Page *page = (*pte)[addr.getPTEIndex()];
        (*page)[addr.getOffset()] = val;
    }
 
    void setWord (const VAddress &addr, word val) { /*реализвать*/}
    void setDword (const VAddress &addr, dword val) { /*реализвать*/}
    void setQword (const VAddress &addr, qword val) { /*реализвать*/}
 
    byte getByte (const VAddress &addr)
    {
        PTE *pte = (*(dynamic_cast<PDE*> (CR3))) [addr.getPDEIndex()];
        Page *page = (*pte)[addr.getPTEIndex()];
 
        return (*page)[addr.getOffset()];
    }
 
    word getWord (const VAddress&) { return 0;/*реализвать*/}
    dword getDword (const VAddress&) { return 0;/*реализвать*/}
    qword getQword (const VAddress&) { return 0;/*реализвать*/}
private:
    PGEntries *CR3; // в процессоре регистр CR3 содержит адрес таблицы верхнего уровня
};
 
int main ()
{
    PDE *pde = new PDE;
    VMemmory mem (pde);
 
    VAddress addr (123, 0x12345678); 
 
    mem.setByte(addr, 0xAB);
 
    std::cout << "Our byte = " << mem.getByte(addr) << std::endl;
 
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.01.2015, 15:40
Ответы с готовыми решениями:

Unhandled exception при работе с матрицами
Делал лабораторную работу....и вот уже битых часа 3 сиже немогу понять в чем проблема и как ее испрвить вот условие задачи ...

Ошибка Unhandled exception at 0x00007FFFC03D06BC Microsoft C++ exception: std::invalid_argument at memor
Итак, цель проста, по клику мыши текст на экране должен заменяться, заменяется он результатом работы функции NextSpeech(), в других...

Unhandled exception at at 0x75E717D2 in ConsoleApplication24.exe: Microsoft C++ exception: std::out_of_range at memory l
Здравствуйте, помогите пожалуйста, при проходе через последний цикл выдаёт вот такую ошибку: Unhandled exception at at 0x75E717D2 in...

2
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
02.01.2015, 16:45
Памяти не хватает. Ты пытаешься выделить 4 гига, думаю причина именно в размере.
Вообще такие вещи так не делаются, страницы мапятся по мере необходимости (новые страницы могут мапится на ранне использованные физические адреса). Заранее мапится всего несколько страниц.
0
0 / 0 / 0
Регистрация: 02.01.2015
Сообщений: 4
02.01.2015, 22:15  [ТС]
на деле памяти на ноуте у меня ~4гб. ладно, изменил размер до 1 гб. мы имеем "Необработанное исключение по адресу 0x00EA3D8C в ConsoleApplication3.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0x48C784C8."
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.01.2015, 22:15
Помогаю со студенческими работами здесь

Ошибка при написании класса: Unhandled exception std::bad_alloc at memory location
ПИшу свой клас Var, проблема в следующем из-за строчки first = first+1; вылетает ошибка Unhandled exception at at 0x760FB727 in...

Выдаёт ошибку "Unhandled exception at 0x00007F exception: std::bad_alloc in memory location"
Добрый день, друзья не могли бы помочь разобраться, почему выдаёт такую ошибку? Вот #include &lt;iostream&gt; #include...

Unhandled exception at 0x7c812a5b : Microsoft C++ exception: std::bad_alloc at memory location 0x0012f350
что то я запутался совсем. подскажите где глюк? Считываю из XML данные: char* ValueVariable(длинная символьная строка) пытаюсь ее...

Ошибка при компиляции "Unhandled exception at ***"
выдаёт ошибку: Unhandled exception at 0x00ea1868 in trains.exe: 0xC0000005: Access violation reading location 0x00000008. код: ...

Webkit.net unhandled exception при запуске
WinXP. WebKit.Net выкидывает при запуске исключение. Все файлики вебкита сложены в папку с приложением, фреймворки 3.5 и 4 установлены (на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru