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

Ошибка в c++ form: Access violation at adress 00401E16 in module 'Project1.exe'. Read of adress A4F698D8

08.04.2017, 13:57. Показов 1041. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно методом блочной(карманной) сортировки упорядочить массив по возрастанию. Программы выдает ошибку в строке №47: if(ar1[i][j]!=0). Данный код работает в консольном приложении, но при переносе на форму выдает ошибку.

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
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
void __fastcall TForm1::Button1Click(TObject *Sender) //кнопка для заполнения массива случайными числами
{ int n=4;
n=StrToInt(Edit1->Text);
if(n>10){
ShowMessage("Максимальное количество  10!");
n=10;
Edit1->Text = "10";
}
StringGrid1->ColCount=n;
for(int i=0; i<n;i++)
StringGrid1->Cells[i][0]=IntToStr(random(9));
 
}
 
void __fastcall TForm1::Button2Click(TObject *Sender) //кнопка для выполнения сортировки
{
const int x=10;
int ar[x],i,j,n;
int ar1[x][x];
int d=1, t=0;
 
for(int i=0;i<x;i++)
ar1[i][0]=StrToInt(StringGrid1->Cells[i][0]);
 
for(int z=0;z<3;z++)
{
t=0;
for(int i=0;i<x;i++)
{
int indexo4ik = (ar[i]/d)%10;
ar1[indexo4ik][i]=ar[i];
}
 
for(int i=0;i<x;i++)
{
for(int j=0;j<x;j++)
if(ar1[i][j]!=0)
{
ar[t]=ar1[i][j];
t++;
}
}
for(int i=0;i<x;i++)
for(int j=0;j<x;j++)
ar1[i][j]=0;
d*=10;
}
for(int i=0;i<x;i++)
StringGrid2->Cells[i][0]=IntToStr(ar1[i][0]);
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.04.2017, 13:57
Ответы с готовыми решениями:

Ошибка "Access violation at adress 005D14F7 in mudule 'Project1.exe' Read of adress 000003C4."
Подскажите как решить такую проблему: Заранее благодарен.

Ошибка: Acsess volation at adress 00558BEF in module Project1.exe.Read of adress 0000038C
Сделал Form1-Form7 На каждой Adotable1 DataSourge1 Dbnavigator1 dbgrid1 adoconection 1 на Form1 Асе компоненты комбобоксы на...

Ошибка Access violation at adress 0046B96C in module 'Project2.exe'. Write of adress 00000020
Создаю почтовый клиент. Когда хочу получить список список писем возникает такая ошибка. Вот код первой формы, на ней я вхожу в саму...

4
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
08.04.2017, 14:42
Цитата Сообщение от denchuk007 Посмотреть сообщение
Программы выдает ошибку в строке №47: if(ar1[i][j]!=0).
Не знаю, как в 47-й, но в 49-й может быть выход за границу выделенной памяти, потому что индекс t никак не контролируется.
0
0 / 0 / 0
Регистрация: 13.12.2016
Сообщений: 7
09.04.2017, 12:39  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
Не знаю, как в 47-й, но в 49-й может быть выход за границу выделенной памяти, потому что индекс t никак не контролируется.
Как я могу это исправить? Ибо даже малейшего представления нет.
0
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
09.04.2017, 13:19
C++
1
2
3
4
5
6
7
8
9
for(int i=0;i<x;i++)
{
for(int j=0;j<x;j++)
if(ar1[i][j]!=0)
{
ar[t]=ar1[i][j];
t++; // вот это теоретически может быть выполнено x*x раз. т.е 100 раз. после 10 раза выход за пределы массива ar
}
}
но допустим вы это исправите, контролируя как-то значения t.
остается вопрос, нахера вообще эти циклы? какие-то не нулевые знаения записываются в ar,
счетчик t наращивается, а далее в коде результаты этих действий нигде не используются.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
09.04.2017, 15:17
Цитата Сообщение от denchuk007 Посмотреть сообщение
Как я могу это исправить?
Ну, напиши так:
C++
1
2
3
4
5
if(ar1[i][j]!=0 && t < x)
{
    ar[t]=ar1[i][j];
    t++;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2017, 15:17
Помогаю со студенческими работами здесь

Acess violation as adress 00454AE8 in module 'Project1.exe.' Read of address 00000000
При выполнении программы дает ошибку 'Acess violation as adress 00454AE8 in module 'Project1.exe.' Read of address 00000000'. ...

Выдает ошибку Делфи Acces violation at adress 005BE79F in module 'Project 1.exe' Read of adress
Не могу понять в чем ошибка, объясните пожалуйста type kup= array of integer; {$R *.dfm} procedure...

При запуске срабатывает следующая ошибка access violation at adress 0040388C. read of adress 0000000000
//--------------------------------------------------------------------------- #include &lt;vcl.h&gt; #pragma hdrstop #include...

ActiveX ошибка: Х Access violation at address xx in module 'xxx.ocx'.Read of adress 0000030.
Подскажите, кто знает Не могу обратиться к свойству главной формы (например ActivexForm.Left ) при попытке обратиться выдает ошибку ...

Получаю Access violation at adress 056A399 ... Read of adress 00000044
Уважаемые! Проблема такого рода. При выполнении процедуры Procedure TEd.DelClick(Sender: TObject); var i : Integer; Path :...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru