Не удается получить элемент из std::vector
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 03.07.19 12:39
Оценка:
Есть некоторая структура aps типа addparstruct, в которой содержатся различные поля данных. В частности, в этой структуре есть поле Vimparray типа vector<long double> и поле timparray типа vector<string> .
Ниже приведён код для работы с переменной aps:

char  schartcorr[80];
string  stcorr;

//...

n = aps.Vimparray();
if (n>0)
{
    for (i=0; i<n/3; i++)
    {
        if (aps.timparray.size()>0)
        {
            stcorr = (string)(aps.timparray.at(i));
            strcpy(schartcorr,stcorr.c_str());
            sprintf(s2, " tcorr %d = %s \r\n",i+1,schartocorr);
            strcat(s,s2);
        }
        val1 = (long double)(aps.Vimparray.at(i*3));
        val2 = (long double)(aps.Vimparray.at(i*3+1));
        val3 = (long double)(aps.Vimparray.at(i*3+2));
        sprintf(s2," dV%dx(м/с)    % .15le    % .15le    % .9le \r\n",i+1,val1,val2,val3);
        strcat(s,s2);
    }
}


При этом во время запуска программы в отладчике происходит остановка действия программы на строке stcorr = (string)(aps.timparray.at(i)); с выводом сообщения:

Необработанное исключение по адресу 0x7581AAF2 (KernelBase.dll) в BallisticRG.exe: 0xC000041D: Во время вызова пользователя обнаружено необработанное исключение


После чего программа останавливается на этом месте.

Если заменить строку stcorr = (string)(aps.timparray.at(i)); на строку stcorr = (string)(aps.timparray[i]); , то тогда появится другое сообщение:

Необработанное исключение по адресу 0x6F01DF22 (msvcr110.dll) в BallisticRG.exe: 0xC000041D: Во время обратного вызова пользователя обнаружено необработанное исключение


При этом, если я закомментирую строки

if (aps.timparray.size()>0)
        {
            stcorr = (string)(aps.timparray.at(i));
            strcpy(schartcorr,stcorr.c_str());
            sprintf(s2, " tcorr %d = %s \r\n",i+1,schartocorr);
            strcat(s,s2);
        }


то тогда программа у меня нормально работает.

Что это всё означает? Как решить эту проблему?
1613 г. = 2024 г.
Re: Не удается получить элемент из std::vector
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 03.07.19 12:41
Оценка:
P.S. Длинная строка s, в которую помещаются малые строки s2--это строка, которая выводится в многострочное текстовое поле типа CEdit на диалоговом окне. Сама моя программа--диалоговое интерфейсное приложение на основе MFC, среда разработки--Visual Studio 2012.
1613 г. = 2024 г.
Re: Не удается получить элемент из std::vector
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.07.19 12:52
Оценка: +8
Здравствуйте, RussianFellow, Вы писали:

RF>Что это всё означает? Как решить эту проблему?


1. Проверять не size > 0, а size > i?
2. Найти работу не программистом.
Re: Не удается получить элемент из std::vector
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 03.07.19 14:23
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Что это всё означает? Как решить эту проблему?

Пиши на С или вообще займись чем-то другим, не напрягайся. Ну не получается у тебя.
Sic luceat lux!
Re: Не удается получить элемент из std::vector
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 03.07.19 15:04
Оценка: +2
Здравствуйте, RussianFellow, Вы писали:

RF>Что это всё означает? Как решить эту проблему?


Вообще, глядя на код, кажется, что его писала обезьянка из анекдота про фронтэндера. Зачем проверять n>0?
А строки! Там есть char и string, strcpy и sprintf. Ты же MFC используешь? В конце концов ещё и туда конвертируешь небось.
Re: Не удается получить элемент из std::vector
От: reversecode google
Дата: 03.07.19 15:11
Оценка: +4 :)
если это и весь ваш опыт который вы получили за последние 7 лет с момента прихода на этот форум
то у меня для вас плохая новость
Re[2]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 04.07.19 19:38
Оценка:
Здравствуйте, reversecode, Вы писали:

R>... за последние 7 лет


25 процентов профильных сообщений, значит за почти два года
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[3]: Не удается получить элемент из std::vector
От: reversecode google
Дата: 04.07.19 20:12
Оценка:
ему 45 лет
средне статистическая тема о том как написать макрос на С++ у него за 16 год
сейчас за окном 19 год
я бы сказал что уже все, пусть ищет себя в чем то другом
Re[4]: Не удается получить элемент из std::vector
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 05.07.19 06:51
Оценка:
Здравствуйте, reversecode, Вы писали:

R>ему 45 лет

R>средне статистическая тема о том как написать макрос на С++ у него за 16 год
R>сейчас за окном 19 год
R>я бы сказал что уже все, пусть ищет себя в чем то другом

Мальчик, пошёл вон!
Встретиться бы с тобой в реале...

Я спрашиваю в профильных форумах то, с чем у меня возникают проблемы.
1613 г. = 2024 г.
Re[5]: Не удается получить элемент из std::vector
От: Homunculus Россия  
Дата: 05.07.19 06:59
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Я спрашиваю в профильных форумах то, с чем у меня возникают проблемы.


Тебе здравый совет дают. Зря обижаешься.
Re[2]: Не удается получить элемент из std::vector
От: AlexGin Беларусь  
Дата: 05.07.19 10:43
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Пиши на С...


Там свои сложности, которых не мало (тем более, что чистый C предполагает нишу системнного программирования).
Лично мне видится, что зачастую разработка на C++ получается проще. Вероятно — за счет более высокоуровневого инструментария.

K>...или вообще займись чем-то другим, не напрягайся. Ну не получается у тебя.

+100500
Отредактировано 05.07.2019 19:01 AlexGin . Предыдущая версия . Еще …
Отредактировано 05.07.2019 10:49 AlexGin . Предыдущая версия .
Re[5]: Не удается получить элемент из std::vector
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 05.07.19 14:22
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Мальчик, пошёл вон!

RF>Встретиться бы с тобой в реале...
Ну-ну.
RF>Я спрашиваю в профильных форумах то, с чем у меня возникают проблемы.
Твои вопросы решаются не на рсдн, а в ближайшем ПНД.
Sic luceat lux!
Re[5]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 05.07.19 14:24
Оценка: +2
Здравствуйте, RussianFellow, Вы писали:

RF>Мальчик, пошёл вон!

RF>Встретиться бы с тобой в реале...
быдлота детектед.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Отредактировано 05.07.2019 14:25 niXman . Предыдущая версия .
Re[6]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 05.07.19 14:24
Оценка:
Здравствуйте, Kernan, Вы писали:

K>... ПНД


что это?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[7]: Не удается получить элемент из std::vector
От: reversecode google
Дата: 05.07.19 14:32
Оценка:
пнд психоневрологический диспансер
Re[8]: Не удается получить элемент из std::vector
От: niXman Ниоткуда https://github.com/niXman
Дата: 05.07.19 14:37
Оценка:
Здравствуйте, reversecode, Вы писали:

R>пнд психоневрологический диспансер

%)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: Не удается получить элемент из std::vector
От: iriska2  
Дата: 05.07.19 16:15
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, RussianFellow, Вы писали:


RF>>Что это всё означает? Как решить эту проблему?

K>Пиши на С или вообще займись чем-то другим, не напрягайся. Ну не получается у тебя.
Боже мой, это ощущение русского форума, не хотите отвечать не отвечайте, но срать на голову то зачем?
Re[3]: Не удается получить элемент из std::vector
От: reversecode google
Дата: 05.07.19 16:28
Оценка:
а вам какие больше нравятся, французские форумы или американские ?
на французских будут помогать так что бы не получалось как можно дольше
на американских после нескольких дней, автор сам забросит и пойдет искать себя в том что будет получатся

и только на русских форумах гинеколог будет несколько лет пытаться распилить полено ровно
и только на русских форумах будут те кто будет его подбадривать, что бы он потратил всю жизнь так и не научившись его пилить
Re[6]: Не удается получить элемент из std::vector
От: pagid Россия  
Дата: 07.07.19 08:49
Оценка: +1
Здравствуйте, niXman, Вы писали:

X>быдлота детектед.


Да тут не топик, а парад этого самого получился.
Re: Не удается получить элемент из std::vector
От: Muxa  
Дата: 08.07.19 06:58
Оценка: :))) :))
RF>При этом, если я закомментирую строки
RF>то тогда программа у меня нормально работает.
RF>Как решить эту проблему?

Очевидно, оставить эти строки закомментированными.
Отредактировано 08.07.2019 10:42 Muxa . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.