Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2011, 03:48   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию Ошибка: Доступ не к тому адресу

В общем при добавлении новой запись мне выдается следующая ошибка:
Project Project1.exe raised exception class EAccessViolation with mewssage 'Access violation at address 0040955B in module 'Project1.exe'.Write of address 00000024'.Process stopped.Use Step or Run to continue.
Как я понял, он записал в непонятный для себя адрес, но как это исправить я не знаю. Причем тестировал на косоле - все работает, вот собственно код.
считывание из едитов строк:
Код:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
string nn=(Edit1->Text).c_str();
string nsur=(Edit2->Text).c_str();
string no=(Edit3->Text).c_str();
string ns=(Edit4->Text).c_str();
string nh=(Edit5->Text).c_str();
string nr=(Edit6->Text).c_str();
string np=(Edit7->Text).c_str();
main->AddPeople(ns,nh,np,nn,nsur,no,nr);

}
Подключение самого модуля создание указателя на класс:
Код:
#include "modphone.cpp"
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Main *main=new Main();
Функция добавления:
Код:
string AddPeople(string ns,string nh,string np,string nn,string nsur,string no,string nr){
                        bool flag=false;
                        if(ns!=""&&nh!=""&&np!=""&&nn!=""&&nsur!=""&&no!=""&&nr!=""){
                                flag=true;
                                n++;
                                general[n]=new CPeople(ns,nh,np,nn,nsur,no,nr);
                                peoples++;
                        }
                                if(!flag) return "\n ERROR ";
                                else return "\n PEOPLE ADD ";
                }
general - это указатель на класс предок, я его создал в конструкторе Main();

Конструктор добавления в СPeople:
Код:
        CPeople(string nstreet,string nhouse,string nphone,string nname,string nsurname,string notch,string nroom):CGeneral(nstreet,nhouse,nphone){
                NAME=nname;
                SURNAME=nsurname;
                OTCH=notch;
                ROOM=nroom;
        }
Конструктор добавления в CGeneral:
Код:
 CGeneral::CGeneral(string nstreet,string nhouse,string nphone){
                STREET=nstreet;
                HOUSE=nhouse;
                PHONE=nphone;
        }
Делал точку останова, смотрел какие значения принимают переменные, все верно, а из-за чего ошибка выскакивает я не знаю(

Последний раз редактировалось CodeNOT; 04.01.2011 в 03:51. Причина: Ошибка заголовка
CodeNOT вне форума Ответить с цитированием
Старый 04.01.2011, 11:58   #2
UltimaBeaR
Форумчанин
 
Аватар для UltimaBeaR
 
Регистрация: 21.12.2010
Сообщений: 199
По умолчанию

узнай после выполнения какой строчки кода вылезает это сообщение (либо как-то останови после вылазения ошибки, либо сделай вначале точку останова и по шагам проходи пока не вылезет). Сам эксепшн это ошибка доступа к памяти - значит что ты пытаешся писать память в адреса которые помечены как только для чтения - это означает что у тебя в коде ошибки работы с памятью
UltimaBeaR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Nero - ошибка драйвера DMA. ошибка CRC NecRoMat Софт 5 09.05.2012 01:29
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? ankris HTML и CSS 5 23.11.2010 16:58
Это ошибка Delphi или моя ошибка??? bloodeagle Общие вопросы Delphi 3 12.11.2009 15:26
Ошибка в Аfor i:=1 to SI do. Пишит что ошибка в SI Алексей_xXx Помощь студентам 2 29.05.2009 00:09
...Ошибка 101 (net::ERR_CONNECTION_RESET): Неизвестная ошибка... infrared Помощь студентам 0 16.04.2009 17:44