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

Access Violation at address

23.03.2015, 20:43. Показов 822. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ошибка вылетает после прохождения 22 строки (функция ChangeSym 4 строка в теле).
Объясните кто-то - почему?
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <string.h>
#include "Unit2.h"
#include "IniFiles.hpp"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
TIniFile *Ini = new TIniFile("options.ini");
TStringList *strLines= new TStringList;
TStringList *tmpLines= new TStringList;
 
void ChangeSym (String str, int flag) {
    String alph="abcdefghijklmnopqrstuvwxyz";
    if (flag=1) {
         for (int i=0; i < str.Length(); i++) {
            if (str[i]=='z') {
                str[i]='a';
            } else {str[i]=alph[str.Pos(str[i])+1];}
        }
    }
    if (flag=0) {
         for (int i=0; i < str.Length(); i++) {
            if (str[i]=='a') {
                str[i]='z';
            } else {str[i]=alph[str.Pos(str[i])-1];}
        }
    }
}
 
void Coding (TStringList *lines, int flag) {
    for (int i = 0; i < lines->Count; i++) {
       ChangeSym(lines->Strings[i], flag);
    }
}
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
Edit1->Text = Ini->ReadString("Edits","Edit1","Введите имя");
Edit2->Text = Ini->ReadString("Edits","Edit2","Введите имя");
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
    String name;
 
    name=Form2->Edit1->Text;
    Ini->WriteString("Edits", "Edit1", Edit1->Text);
    name+=".txt";
    strLines->LoadFromFile(name);
    Memo1->Lines->Clear();
    Memo1->Lines->LoadFromFile(name);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
    String name;
    name=Form2->Edit2->Text;
    Ini->WriteString("Edits", "Edit2", Edit2->Text);
    name+=".txt";
    tmpLines->LoadFromFile(name);
    for (int i = 0; i < tmpLines->Count; i++) {
       AnsiString tmp = tmpLines->Strings[i];
       strLines->Add(tmp);
    }
    Memo2->Lines->Clear();
    Memo2->Lines->LoadFromFile(name);
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm2::Button3Click(TObject *Sender)
{
    strLines->Sort();
    strLines->SaveToFile("f3.txt");
    Memo3->Lines->LoadFromFile("f3.txt");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm2::Button4Click(TObject *Sender)
{
    Coding(strLines, 1);
    strLines->SaveToFile("f3.txt");
    Memo3->Lines->LoadFromFile("f3.txt");
}
//---------------------------------------------------------------------------
Миниатюры
Access Violation at address  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2015, 20:43
Ответы с готовыми решениями:

Ошибка 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 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; и на формкриэйт главной формы вписал...

3
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
23.03.2015, 22:47
потому что String (AnsiString, UnicodeString, и тд и тп) индексуються с 1, а у тебя с 0
1
2 / 2 / 0
Регистрация: 28.11.2014
Сообщений: 18
23.03.2015, 23:16  [ТС]
_Dimon_, Спасибо, да это я определил.

Теперь возникла следующая проблема. По отладчику видно, что функция ChangeSym получает корректную строку, но при этом первоначальная строк ане меняется. Если пытаюсь принимать не строку, а ссылку - ругается компиль. Как сказать ему, что я отправляю ему не строку, а ссыль на нее, чтобы он не создавал бесполезный дупликат?

Проблему решил тем, что переделал void функцию в AnsiString. Всё же хотелось бы услышать ответ.
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
23.03.2015, 23:27
void ChangeSym (String &str, int flag)

Добавлено через 1 минуту
для понимания
C++
1
2
3
4
 String s = "aaa";  //строка
 String &rs = s;    //ссылка настроку
 rs = "bbb";        //изменяем строку
 ShowMessage(s);    //выводим (будет "bbb")
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2015, 23:27
Помогаю со студенческими работами здесь

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

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

Access Violation at address in module read of address
Программа выдают ошибку, не могу устранить. На моем компьютере работает корректно, на чужих нет. Отменил галочку в...

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 ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru