Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Phoenix-jkj
0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 2

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

15.02.2016, 06:19. Показов 1115. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru