Аватар для Phoenix-jkj
0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 2

Ошибка EAccessViolation при доступе к элементам массива

15.02.2016, 06:19. Показов 1120. Ответов 2

Студворк — интернет-сервис помощи студентам
Ошибка вылазит в двух местах (и там и там ругается на rtl60.bpl)
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString tekst;
float col;
float row;
if (Edit1->Text.IsEmpty())
  {
        ShowMessage("Поле не заполненно.");
  } else
  {
        col=Edit1->Text.Length();
        char *wkey=new char[col];
        strcpy(wkey,Edit1->Text.c_str());
        tekst=Memo1->Text;
        float sl;
        sl= tekst.Length();
        row=sl/col;
        row=ceil(row);
        AnsiString tekst1;
 
        char **txt=new char*[row];
        for (int i=0;i<row;i++) txt[i]=new char[col];
        int k=1;
 
        for (int i=0;i<row;i++)
                for (int j=0;j<col;j++)
                {
                        if (k<sl)
                        {
                                txt[i][j]=tekst[k] ;
                                k++;
                                Memo2->Lines->Add(tekst[k]);
                        }
                };
 
        char min=wkey[0];
        k=2;
        int n;
        for (int t=0;t<col;t++)
        {
                for (int f=0;f<col;f++)
                if (min>wkey[f]&&wkey[f]!=' ')
                {min=wkey[f];
                n=f;};
                wkey[n]=' ';
                for (int i=0;i<row;i++)
                        {
                                if (k<sl)
                                {
                                        tekst1[k]=txt[i][n];
                                        k++;
                                }}}
         Memo1->Lines->Add(tekst1);} ;
}
Первая была на строке txt[i][j]=tekst[k] ;, была решена присвоением k=1, но теперь не читается первый символ.
Вторая на строке tekst1[k]=txt[i][n];, решение не найдено.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2016, 06:19
Ответы с готовыми решениями:

Ошибка сегментирования при доступе к переменным класса
Имею: - CentOS - gcc 4.8 - Собственный класс - В этом классе есть объект = указатель на другой класс (назовем его log). - В...

Не запускается программа, ошибка EAccessViolation
Добрый день! Код взят отсюда https://www.cyberforum.ru/cpp-builder/thread103448.html, собирался его переделать, но для начала запустить...

Ошибка raised exception class EAccessViolation.......
Дорогой народ, может поможете решить проблему. Делаю я прогу на С++ архитект 2009, создал Форму1 , форму2, форму3 . Связал их, и с помощью...

2
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
15.02.2016, 10:22
Цитата Сообщение от Phoenix-jkj Посмотреть сообщение
на строке tekst1[k]=txt[i][n];, решение не найдено.
В 38-й строке значение переменной n не определено, и если условие в 42-й строке не выполняется, то n как индекс так и останется с неопределенным значением, а это недопустимо. Кроме того, если уж k - порядковый номер символа в строке, то он не должен быть при сравнении с длиной "меньше", как у вас, а "меньше или равно", чтобы и последний символ участвовал в цикле. И еще, - не знаю, учитываете ли вы это, - строка, которой присвоено Memo->Text внутри себя содержит символы управления: "ВК" и "ПС" (0x0D 0x0A).
1
 Аватар для Phoenix-jkj
0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 2
16.02.2016, 23:44  [ТС]
Проблема была решена заданием размера для второго AnsiString.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2016, 23:44
Помогаю со студенческими работами здесь

Ошибка при доступе к элементу массива
Из-за чего эта ошибка? ошибка в этой строке cell=0;

Ошибка при обращении к элементам массива
Задано массив А размера N. Сформировать новый массив B того же размера, элементы которого определяются следующим образом: Почему...

Ошибка при задании значений элементам массива
где я ошибся? заранее спасибо char Arry; Arry = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0} ; Arry = {1,...

Ошибка EAccessViolation при сохранении файла
Собственно при сохранении файла возникает ошибка (на скрине ). Вот кусок сохранения файла: if (dlgSave1.Execute) then begin ...

Ошибка памяти EAccessViolation при FormCreate в Delphi 10
Здравствуйте, у меня программа на Delphi 10, которая работает с базой данной на sql. При работе программа вылетает и выдает такую ошибку: ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
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 и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru