Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Vector subscript out of range - Visual C++ ? 
:(
    Опции темы
BlackMesa
  Дата 28.3.2018, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 28.3.2018

Репутация: нет
Всего: нет



Осталась одна ошибка (ошибка вылетает только на других компах, на компютере где происходит компиляция данной ошибки нет):
vector subscript out of range
скрин в атаче 

вектор используется только при загрузке файла (добавляем строки в вектор push_back) в процедуре поиска
Код

vector<string> signBase; //(MAX_PATH);


Код

bool scanSig(string path, int signCount)
{
    InitConsole();
    FILE *in1 = fopen(path.c_str(), "rb");
    if (!in1) cout << "Couldn't open file";
    for (int wsignCount = 0; wsignCount < signCount; wsignCount++)
    {
        //Convert string vector to int
        istringstream iss(signBase[wsignCount]);
        vector<string> results(istream_iterator<string>{iss},
            istream_iterator<string>());
        reverse(results.begin(), results.end());
        vector <int> signInt(results.size());
        //cout << "check: " << signBase[wsignCount] << endl;
        int resultsSize = results.size();
 
        for (int i = 0; i < results.size(); i++)
        {
            stringstream ss;
            ss << hex << results[i];
            int x;
            ss >> x;
            signInt[i] = x;
        }
 
        //unsigned char buf[26000];
        unsigned char buf[MAX_PATH];        
        int z = 0;
        size_t count;
        //while (count = fread(buf, sizeof(buf[0]), 26000, in1)) {
        while (count = fread(buf, sizeof(buf[0]), MAX_PATH, in1)) {
            int i;
            for (i = 0; i < count; ++i) {
 
                if ((int)buf[i] == signInt[0])
                {
                    for (z = 1; z < resultsSize; z++)
                    {
                        if (buf[i - z] != signInt[z]) break;
                    }
                    if (z == resultsSize)
                    {
                        detectedSignature = signBase[wsignCount];
                        detectedPath = path;
                        botFound = true;
                        cout << "Detected: " << path << endl << signBase[wsignCount]  << endl;
                    }
                }
                sleepCount++;
                if (sleepCount == 3000)
                {
                Sleep(6);
                sleepCount = 0;
                }
            }
        }
 
 
    }
    fclose(in1);
    return 0;                       
}

подскажите где может быть проблема


Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  ошибка.JPG 38,46 Kb
PM MAIL   Вверх
xvr
Дата 28.3.2018, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Сообщение читать не пробовали? Оно же чистым английским языком пишет, что вы где то попытались обратится за пределы vector<>, и просит нажать кнопку 'Повторить', что бы он мог вам показать где именно.

PM MAIL   Вверх
Namira
Дата 29.3.2018, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.2.2011

Репутация: нет
Всего: нет



Цитата(BlackMesa @  28.3.2018,  14:14 Найти цитируемый пост)
добавляем строки в вектор push_back

В твоем коде и не пахнет push_back'ом. И если бы ты действительно добавлял строки пушбэком, то не получил бы ту ошибку, которую получил. Перечитай свой код хотя бы, у тебя там явно обращение к элементу вектора, который не существует. И вообще для копирования потока в вектор используй std::copy, а не то, что ты написал.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1003 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.