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

Ошибка: Нарушение прав доступа

17.01.2011, 18:39. Показов 1956. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, пишу программу для минимизации канонических выражений (сумм минтермов).
Проблема такая - всё компилируется, а при запуске(после ввода символов с клавиатуры
VS2008 выдает следующее:

Первый этап обработки исключения в "0x0041181a" в "shablon.exe": 0xC0000005: Нарушение прав доступа при записи "0xccccccd0".
Необработанное исключение в "0x0041181a" в "shablon.exe": 0xC0000005: Нарушение прав доступа при записи "0xccccccd0".
Программа "[1280] shablon.exe: Машинный код" завершилась с кодом 0 (0x0).


ТЕКСТ ПРОГРАММЫ:


#include "stdafx.h"
#include<iostream>
#include <string>
#include <sstream>
#include <fstream>
#include<algorithm>
#include<stdexcept>
using namespace std;


#define TRUE 1
#define FALSE 1
#define MAX_CUBES 50
#define MAX_VARS 2

typedef unsigned short WORD;

struct cube{
WORD t; //собственно минтерм
WORD f; //его дополнение
};

typedef struct cube CUBE;


// ========== Функции ====================================
//======================================== ================
//======== переводит число из формата string в формат unsigned_short =======================
unsigned short string_to_unsigned_short( const string& s )
{
istringstream i(s);
unsigned short x;
if (!(i >> x))
return 0;
return x;
}
//== Считывает строки-минтермы с клавиатуры
void ReadMinterms(CUBE** tempCube)
{
string S;
CUBE D;
for (int e=0; e<MAX_VARS; e++){
cout<<"Enter minterm: "<<e<<endl;
getline(cin,S);
D.t= string_to_unsigned_short(S);
D.f=1^D.t;
tempCube[e][1]=D;
}
}


//проверяет содержит ли w точно одну 1
int Oneone(WORD w)
{
int ones,b;
ones=0;
for (b=0; b<MAX_VARS; b++){
if (w&1) ones++;
w=w>>1;
}
return((ones==1));
}

int Combinable(CUBE C1, CUBE C2)
{
WORD twordt, twordf;

twordt=C1.t^C2.t;
twordf=C1.f^C2.f;
return( (twordt==twordf)&&Oneone(twordt));
}


void Combine(CUBE C1, CUBE C2, CUBE *C3)
{
C3->t = C1.t&C2.t;
C3->f = C1.f&C2.f;
}


//проверка на равенство
int EqualCubes(CUBE C1, CUBE C2)
{
return ((C1.t==C2.t)&&(C1.f==C2.f));
}



void main()
{
CUBE cubes[MAX_VARS+1][MAX_CUBES];
int covered[MAX_VARS+1][MAX_CUBES];
int numCubes[MAX_VARS+1];
int m;
int j,k,p;
CUBE tempCube;
int found;
//инициализация числа m-кубов каждого уровня m
for (m=0; m<MAX_VARS+1; m++) numCubes[m]=0;
CUBE* pT=&tempCube;
ReadMinterms(&pT);

for (m=0; m<MAX_VARS; m++){
for (j=0; j<numCubes[m]; j++){
for (k=j+1; k<numCubes[m]; k++){
if (Combinable(cubes[m][j], cubes[m][k])){
//отмечаем покрытые кубы
covered[m][j]=TRUE; covered[m][k]=TRUE;
Combine(cubes[m][j],cubes[m][k], &tempCube);
found=FALSE;
for (p=0; p<numCubes[m+1];p++)
if (EqualCubes(cubes[m+1][p],tempCube)) found=TRUE;
if (!found) {
numCubes[m+1]=numCubes[m+1]+1;
cubes[m+1][numCubes[m+1]-1]=tempCube;
covered[m+1][numCubes[m+1]-1]=FALSE;
}
}
}
}
}
cube A;
for (m=0;m<MAX_VARS; m++){
for (j=0;j<numCubes[m];j++){
if (!covered[m][j]) {
A=cubes[m][j];
cout<<A.f<<endl;
cout<<A.t<<endl;
}
}
}
}
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.01.2011, 18:39
Ответы с готовыми решениями:

Ошибка: нарушение прав доступа по адресу
Добрый день! Очень надеюсь на вашу помощь. Пыталась написать программу, которая строит все перестановки, используя Backtracking. Построение...

Ошибка: нарушение прав доступа при чтении
Помогите решить ошибку, если отдельно вызывать функции double det(macierz *A,macierz*B,int u) void kramer(macierz A,macierz *B) ...

Ошибка: Нарушение прав доступа при чтении
Всем привет, решил в проект добавить функцию элементарную void MyClass::mouseMove() { LPPOINT cursorPos; for(;;) { ...

2
17.01.2011, 18:56

Не по теме:

Ник, конечно.... :good:

0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
18.01.2011, 05:24
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
    CUBE tempCube;
    int found;
    //инициализация числа m-кубов каждого уровня m
    for (m=0; m<MAX_VARS+1; m++) numCubes[m]=0;
    CUBE* pT=&tempCube;
    ReadMinterms(&pT);
тут видимо нужно создать указатель на массив указателей, а не одну структуру
в функции ReadMinterms() тоже неправильно tempCube[e][1]=D;, что за 1 ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.01.2011, 05:24
Помогаю со студенческими работами здесь

Ошибка:нарушение прав доступа при записи по адресу
Помогите понять в чём ошибка. Моя программа должна заменять числа из шестнадцатиричной системы счисления на аналоги в двоичной системе....

Ошибка обращения к строке (нарушение прав доступа чтения)
Добрый всем день немогу разобраться что за ошибка и как ее локализовать код и скрин прикреплены

Ошибка: нарушение прав доступа при чтении по адресу
Код: #include &lt;SFML/Graphics.hpp&gt; int M = 3; int N = 3; int Scale = 100; int w = Scale*M; int h = Scale*N;

Ошибка времени исполнения: нарушение прав доступа при чтении
Как исправить. В функции decode вторая строка. Необработанное исключение по адресу 0x00FD6A4F в kurs.exe: 0xC0000005: нарушение прав...

Ошибка 0xC0000005: нарушение прав доступа при чтении по адресу 0x3854BDD4
задание: поменять местами отрицательные элементы массива с положительными. почему то выдает ошибку? #include&lt;stdio.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru