Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/96: Рейтинг темы: голосов - 96, средняя оценка - 4.52
заставил Бендера
 Аватар для IIIa66uMEM6eP
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6

Access Violation at address in module read of address

09.01.2012, 11:26. Показов 17980. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа выдают ошибку, не могу устранить. На моем компьютере работает корректно, на чужих нет.
Отменил галочку в project->packages->build with runtime packages
Отменил ее и в project->linker->use dinamic RTL
Выдает ошибку access violation at address in module read of address

Насколько понимаю это ошибка какого то не обнуленного указателя, но попытки устранить тщетны. Помогайте пожалуйста.
Прилагаю код программы.


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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <StrUtils.hpp>
#include <stdio.h>
#include "Main.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TMainForm *MainForm;
TForm1 *Form1;
 
int n = 4;          // начальное количество вершин
 
int MAX = 999999;   // это должно быть больше чем
                    // значение любого ребра в граафе
 
 
// проверка на вхождение числа j в одномерный массив a
bool in_arr(int j, int *a) {
    bool r = false;
    for (int i = 0; i < n - 1; i++) {
        if (a[i] == j) {
            r = true;
            break;
        }
    }
    return r;
}
 
// функция для вывода маршрутов в текстовое поле основываясь на массивах D и P
 
void swDxtra(int **C, int *P, int *D, int a) {
    int prom;
    AnsiString str;
    for (int i = 0; i < n; i++) {
        if (i != a && C[P[i]][i] != NULL) {
            str = AnsiString(i + 1);
            prom = P[i];
            do {
                if (str != AnsiString(i + 1)) prom = P[prom];
                str =str +"<-" + AnsiString(prom + 1);
            } while (prom != a);
            MainForm->Memo1->Lines->Add(str + " = " + AnsiString(D[i]));
        }
    }
}
 
// функция расчета кратчайших путей с помощью алгоритма Дейкстры
 
void Dijkstra(int **C, int a) {
    int *S = new int[n - 1],        // массив пройденых вершин
        *D = new int[n],            // конечная стоимость маршрута
        *P = new int[n],            // промежуточные маршруты
        w,
        min;
    for (int k = 0; k < n - 1; k++) {
        S[k] = -1;                  // инициализируем массив
    }
    S[0] = a;                       // исходная вершина будет первой пройденой
    for (int i = 0; i < n; i++) {
        D[i] = (C[a][i] == NULL) ? MAX : C[a][i];    // заполняем конечные стоимости
        P[i] = a;                                    // исходя из матрицы стоимости
    }
    for (int i = 1; i < n - 1; i++) {                // считаем...
        min = MAX;
        for (int k = 0; k < n; k++) {
            if (D[k] < min && !in_arr(k, S) && k != a) {
                w = k;
                min = D[k];
            }
        }
        if (min == MAX) break;
        S[i] = w;
        for (int j = 0; j < n; j++) {
            if (!in_arr(j, S) && C[w][j] != NULL && (D[w] + C[w][j]) <= D[j]) {
                P[j] = w;
                D[j] = D[w] + C[w][j];
            }
        }
    }
    swDxtra(C, P, D, a);            // выводим результат
}
 
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
    : TForm(Owner)
{
}
//----------------------------------------------------------------------------
 
void __fastcall TMainForm::Edit1Change(TObject *Sender)
{
if (Edit1->Text != "") {
 
        // узнаем количество вершин
 
        n = StrToInt(Edit1->Text);
 
        // сделаем стринггрид
 
        StringGrid1->ColCount = n + 1;
        StringGrid1->RowCount = n + 1;
        StringGrid1->Width = (n + 1) * 65 + 3;
        StringGrid1->Height = (n + 1) * 25;
        for (int i = 0; i < n; i++) {
            StringGrid1->Cells[0][i + 1] = i + 1;
            StringGrid1->Cells[i + 1][0] = i + 1;
        }
    }                
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::Button1Click(TObject *Sender)
{
Label2->Caption="Ошибка, начальная вершина\nбольше конечной";
Memo1->Clear();
        if (Edit3->Text=="")
                Edit3->Text=Edit1->Text;
        n=StrToInt(Edit3->Text);
        if (StrToInt(Edit2->Text)>StrToInt(Edit3->Text))
                Label2->Visible=true;
        else
        {
         Label2->Visible=false;
    // создадим матрицу стоимости
 
    int **C = new int*[n];
    for (int i = 0; i < n; i++) {
        C[i] = new int[n];
    }
 
    // заполним матрицу стоимостей данными из стринггрида
 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (TryStrToInt(StringGrid1->Cells[j + 1][i + 1], C[i][j])) {
                C[i][j] = StrToInt(StringGrid1->Cells[j + 1][i + 1]);
            } else {
                C[i][j] = NULL;
            }
        }
    }
 
    // запускаем алгоритм дейкстры, например, для нулевой вершины;
    // передаем в функцию матрицу стоимостей и индекс вершины-источника
    // из которого будем искать маршруты ко всем остальным вершинам
        int p=StrToInt(Edit2->Text)-1;
    Dijkstra(C, p);
}        
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::N2Click(TObject *Sender)
{
// заполняем пример из файла
int n=13,i,j,k;
        Edit2->Text="1";
        Edit3->Text="13";
        Edit1->Text=IntToStr(n);
            StringGrid1->ColCount = n + 1;
        StringGrid1->RowCount = n + 1;
        StringGrid1->Width = (n + 1) * 65 + 3;
        StringGrid1->Height = (n + 1) * 25;
        FILE *f=fopen("exampler.pn","rb");
 
        for (i=1; i<=13; i++)
          for (j=1; j<=13; j++)
          {
             fread(&k,4,1,f);
             StringGrid1->Cells[j][i]=k;
          }
        fclose(f);
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::N3Click(TObject *Sender)
{
        Memo1->Clear();
        Edit1->Text="1";
        Edit2->Text="1";
        Edit3->Text="1";
         for (int i=1; i<=13; i++)
          for (int j=1; j<=13; j++)
            StringGrid1->Cells[i][j]="";
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::N6Click(TObject *Sender)
{
        Form1->Show();        
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
 
}
//---------------------------------------------------------------------------
Добавлено через 14 часов 10 минут
есть предположения?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2012, 11:26
Ответы с готовыми решениями:

Access violation at address 32ABE860 in module cc32100mt.dll. read of address f8338338
кто знает эту ошибку. При сохранении stringgrid в файл выдается критическая ошибка Access volidation at address 32ABE860 in module...

Access violation at address 00404083 in module 'Projectl.exe'. Read of address 00000000.
Кинул на форму PasswordDlg, в главной форме вверху вписал #include &quot;PassWord.h&quot; и на формкриэйт главной формы вписал...

Access violation at address 501F084A in module vcl120.bpl. Read of address 00000374
Привет всем! Который день не могу продолжить работу с программой из-за такой ошибки: 'Access violation at address 501F084A in module...

14
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
09.01.2012, 12:34
а где именно выпадает? сразу при запуске?
0
заставил Бендера
 Аватар для IIIa66uMEM6eP
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6
09.01.2012, 12:38  [ТС]
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
а где именно выпадает? сразу при запуске?
Выпадает при выборе вкладки с примером, пример заполняется из файла, ручной счет выполняется нормально на других машинах.
На компьютерах где установлен борланд с++ программа работает корректно.
дам ссылку на

 Комментарий модератора 
IIIa66uMEM6eP, для вложений используйте встроенные возможности форума: кнопка Расширенный режим->Управление вложениями внизу окна редактирования сообщения, или в окне редактирования нажмите на скрепку.
Миниатюры
Access Violation at address in module read of address  
Вложения
Тип файла: zip Алгоритм_Дейкстры..zip (277.0 Кб, 49 просмотров)
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
09.01.2012, 15:17
соберите ехешник по этим рекомендациям - Компиляция программы под С++ Builder, чтобы работала на других компьютерах
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
09.01.2012, 15:41
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
уже как бы есть
Цитата Сообщение от IIIa66uMEM6eP
Отменил галочку в project->packages->build with runtime packages
Отменил ее и в project->linker->use dinamic RTL
хотя ехешник маловат.

На других машинах, как и у меня, файла exampler.pn тоже нет ?
Зато есть РАДХЕ и РАДХЕ2.
И шо ж мы тогда открываем без обработки возможной ошибки открытия
C++
1
FILE *f=fopen("exampler.pn","rb");
?
Миниатюры
Access Violation at address in module read of address  
1
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
10.01.2012, 01:01
LK, вот именно, что размер ехешника говорит о том, что проект не настроен до конца...
0
заставил Бендера
 Аватар для IIIa66uMEM6eP
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6
10.01.2012, 20:12  [ТС]
Курсовой сдан на хорошо, но осадок остался. Кстати программа работает и на других машинах где нет билдера, что вводит в ступор. Спасибо за внимание и ответы.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.01.2012, 21:40
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
Курсовой сдан на хорошо, но осадок остался. Кстати программа работает и на других машинах где нет билдера, что вводит в ступор. Спасибо за внимание и ответы.
1. Осадок от чего?
2. Если вы таскаете за собой библиотеки, то так она и должна работать.
0
заставил Бендера
 Аватар для IIIa66uMEM6eP
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6
10.01.2012, 21:42  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
1. Осадок от чего?
не на всех компьютерах работает, проблема не решена была.
Цитата Сообщение от LK Посмотреть сообщение
2. Если вы таскаете за собой библиотеки, то так она и должна работать.
вот парадокс) но не всегда.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.01.2012, 21:50
на каких не работает - на которых нет билдера ?
а вы все же почитайте тему, ссылка на которую в сообщеии №4, и сделайте все правильно
1
заставил Бендера
 Аватар для IIIa66uMEM6eP
854 / 319 / 17
Регистрация: 05.12.2010
Сообщений: 1,707
Записей в блоге: 6
10.01.2012, 22:42  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
на каких не работает - на которых нет билдера ?
50-50, на разных компьютерах, с разными ос (хр, виста, 7)
один говорит работает, другой ошибка памяти.
на всех компьютерах не стоит борлнанд.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
10.01.2012, 22:56
значит, ошибка в программе, и ошибка проявляется при стечении каких-то обстоятельств

Добавлено через 8 минут
сделал я в папке с программой пустой текстовый файл exampler.pn - и ошибка исчезла
1
0 / 0 / 0
Регистрация: 18.08.2016
Сообщений: 7
23.08.2016, 17:51
У меня выдает такую же ошибку, при попытке загрузки второй формы проекта в только что откомпилированной программе на моей рабочей машине. Какой то абсурд ей богу, до этого всегда так делал а тут не нравится что-то программе.

C++
1
2
3
4
void __fastcall TMAIN::FormCreate(TObject *Sender)
{
INFO->Show();
}
Вот кусок кода который собственно провоцирует эту ошибку.
Подскажите в чем может быть беда.
INFO, TMAIN - названия форм
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
24.08.2016, 12:04
В момент события FormCreate формы TMAIN форма INFO ещё просто не существует. Вот и ошибка.

Показывай INFO, например, на TMAIN::FormShow
0
Модератор
 Аватар для D1973
9910 / 6447 / 2455
Регистрация: 21.01.2014
Сообщений: 27,365
Записей в блоге: 3
25.08.2016, 08:06
Цитата Сообщение от naufilus Посмотреть сообщение
до этого всегда так делал
Да ну!!!
Вызов из события OnCreate главной формы какой-то другой формы проекта заведомо вызывает AV, т.к., как уже написал Lelik-pahan, вызываемой формы еще нет в природе, вызывать нечего.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.08.2016, 08:06
Помогаю со студенческими работами здесь

Access violation at address 004A9FE5 in module 'Project1.exe'. Read of address 0003FFFC
Здравствуйте, помогите устранить ошибку, Access violation at address 004A9FE5 in module 'Project1.exe'. Read of address 0003FFFC. Вот...

Ошибка Access violation at address XXXXXXX in module 'vcl240.bpl'. Read of address XXXXXX
Доброго времени суток. Проблема следующая: при определенной последовательности действий в приложении вылетает ошибка, работа приложения...

Access violation at address in module. Read of address
Помогите пожалуйста разобраться с ошибкой #include &lt;vcl.h&gt; #include &lt;time.h&gt; #include &lt;stdlib.h&gt; #pragma hdrstop ...

Ошибка access violation at address in module borlndmm.dll write of address
Всем здравствуйте. Не могу побороть ошибку &quot;access violation at address in module borlndmm.dll write of address &quot;. Попробую объяснить....

При запуске уже скомпелированной программы ошибка: "Access violation at address in module. Write of address."
Здравствуйте, написал программу для расчета по готовым формулам с использованием динамических массивов. В билдере всё компилируется и...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru