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

Access volation при использовании vector

14.09.2017, 09:59. Показов 1306. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть клас в котором обявлен вектор типа string. Когда я пытаюсь его вывести в ListBox вылетает ошибка, которая на скрине, при этом при выводе вектора через ShowMessage(); все отлично выводит. В чем проблема, и как мне вывести вектор в ListBox или в любой другой компонент? функция void setPrP();

Marshut.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "SDIMAIN.h"
#pragma once
#include <vector>
namespace Program
{
using namespace std;
   class Marshut
    {
        private:
            String PunktPriz, PunktVidpr, TimeOtpr, TimePrb;
            int Vidstan;
            vector<UnicodeString> PrPunkt;
        public:
            Marshut();
            void setPV_PP(String, String);
            void setPrP(String Punkt);
            void setTime_O_P(String,String);
            void setVidstan(int);
            String getPrP();
            void showData();
            String getPP();
    };
}
Marshut.cpp
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
#include "Marshut.h"
#include "SDIMAIN.h"
#include "Unit1.h"
#include "Unit2.h"
//#include <vector>
namespace Program
{
    int kn;
    using namespace std;
    Marshut::Marshut()
    {
        PunktVidpr = "";
        PunktPriz = "";
        Vidstan = 0;
        TimeOtpr = "--:--";
        TimePrb = "--:--";
    }
    void Marshut::setPV_PP(String pv, String pp)
    {
        PunktVidpr = pv;
        PunktPriz = pp;
    }
    void Marshut::setVidstan(int vid)
    {
        Vidstan = vid;
    }
 
    void Marshut::setTime_O_P(String TO,String TP)
    {
        TimeOtpr = TO;
        TimePrb = TP;
    }
    void Marshut::showData()
    {
        ShowMessage("Маршут: "+PunktVidpr+" - "+PunktPriz+'\n'+
        "Відстань: "+Vidstan+" км.\nЧас відправлення: "+TimeOtpr+
        "\nЧас прибуття: "+TimePrb);
    }
    String Marshut::getPrP()
    {
    }
    void Marshut::setPrP(String Punkt)
    {
        String str = "Тальне Умань Черкаси";
        str = str + " ";
        int s = 1;
        for (int i = 1; i <= str.Length(); i++) {
            if(str[i] == ' '){
                PrPunkt.push_back(str.SubString(s,i-s));
                //ShowMessage(str.SubString(s,i-s));
                s = i+1;
            }
        }
        for(int i = 0; i<PrPunkt.size(); i++)
        {
            Form1->ListBox1->Items->Add(PrPunkt[i]);
        }
 
    }
    String Marshut::getPP()
    {
        return PunktPriz;
    }
}
Миниатюры
Access volation при использовании vector  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2017, 09:59
Ответы с готовыми решениями:

Ошибка Access Violation при использовании vector внутри класса
Проблема в следующем: имеется пользовательский класс. Три поля в классе - векторы, один из которых двумерный. Первое создание экземпляра...

Access volation при работе с классом
Есть программа которая складывается с нескольких файлов: SDIMAIN.cpp, Marshut.h, Marshut.cpp. В файле Marshut.h я описал класс: Marshut.h...

Access volation при вызове(создании) формы
При на жатии создаю форму, в ответ получаю ошибку Access Volation и перебрасует на код(см.фото). Что не так? void __fastcall...

3
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.09.2017, 10:32
Ищите в своих циклах (в setPrP()); где индекс принимает недопустимое значение. Их там не много.
0
2 / 2 / 1
Регистрация: 22.02.2016
Сообщений: 55
14.09.2017, 14:06  [ТС]
nick42, так даже если тупо написать
C++
1
 Form1->ListBox1->Items->Add(PrPunkt[1])
Вылетает даная ошибка, а если написать
C++
1
ShowMessage(PrPunkt[1])
то всё отлично выводит, без ошибок...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
14.09.2017, 15:12
Лучший ответ Сообщение было отмечено Onyschuck как решение

Решение

..ну, логически это я не объясню. Возможно, имеет значение, в каком месте вставлены эти items-add() и showmessage().
Вот такой примитив у меня работает, как ему положено...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
     vector<String> PrPunkt ;
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
      ListBox1->Items->Add("SSS");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
      PrPunkt.push_back("TTT");
      ShowMessage(PrPunkt[0]);
      ListBox1->Items->Add(PrPunkt[0]);
}
и никаких ошибок; вставляет строчку в listbox.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.09.2017, 15:12
Помогаю со студенческими работами здесь

Access Violation при использовании delete[]
Здравствуйте. Столкнулся со следующей проблемой - при попытке очистить динамически выделенную память вылезает ошибка Access Violation....

Access violation при использовании экземпляра TIniFile
есть кнопка, в код нажатия на которую я пару дней назад.сегодня добавил ещё вот это AnsiString...

ID3v2Library и Access volation
Приветствую всех. Проблема с ID3v2 пытаюсь загрузить файл пишет access volation at adress 004041AC вот мой код: procedure...

Ошибка при использовании vector<bool>
Текст ошибки (Visual studio 2013): Ошибка 2 error C2440: return: невозможно преобразовать...

Ошибка: Out of range при использовании <vector>
void quicksort() { long long arrsize; cout &lt;&lt; &quot;Enter amount of number&gt; &quot;; cin &gt;&gt; arrsize; vector&lt;long long&gt; arr(arrsize); ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru