Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не по теме http://www.cyberforum.ru/cpp-beginners/thread230262.html
Простите что не по теме, но может кто-то знает где можно найти характеристику программы пикассо- вид графики,где используется и т.д , само описание?
C++ класс stack Всем привет))помогите пожалуйста....нужна прога на тему шаблоны функций и классов,при чём дан класс stack.Перегрузить операции "+"-добавить элемент.и "-"-извлечь элемент....СРОЧНО надо!!!!!спасибо за ранее http://www.cyberforum.ru/cpp-beginners/thread230251.html
Вывести формулу для решения C++
В общем есть задача, но не могу вывести формулу для ее решения! Текст задачи: 3.82. Около стены наклонно стоит палка длиной х метров. Один её конец находится на расстоя-нии у метров от стены. Определить значение угла А между палкой и полом для значений x=k метров и у, изменяющегося от 2 до 3 с шагом h.
C++ Поиск ошибок в файле
нужно составить программу на С++ (консоль) которая будет открывать файл с простым кодом С++ и искать простые ошибки (неиспользуемые переменные,отстуствие типа,лишние пробелы итд, отстутствие # при подключении библиотек итд) Добавлено через 3 часа 7 минут Имеется файл с текстом программы на языке С\С++. Написать программу, определяющую, какие основные типы данных применяются в этой программе,...
C++ Одномерный массив. http://www.cyberforum.ru/cpp-beginners/thread230174.html
В последовательности действительных чисел есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P, затем произведение положительных элементов D. Сравнить модули P и D, указать, какое из произведений по модулю больше.
C++ Что то с классами не так Люди! Пишу курсовую, осталось всего ничего. И тут бах - странные ошибки полезли. В общем дело было так. Загрузился в винду, запустил VS C++ 6.0, и тут он после редактирования и компиляции выдает ошибку: friend.obj : error LNK2005: "class Date d" (?d@@3VDate@@A) already defined in calc.obj friend.obj : error LNK2005: "class Date d" (?d@@3VDate@@A) already defined in calc.obj... подробнее

Показать сообщение отдельно
Страуструп
Сообщений: n/a

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

17.01.2011, 18:39. Просмотров 840. Ответов 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;
}
}
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru