16.04.2018, 14:00 | #31 |
Member
Регистрация: Mar 2018
Сообщения: 34
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Подключение по FTP
Код:
void GetNames(vector<string> &names, vector<string> &types) { // Cчитывание и запись нужных sm-переменных из текст. файла в матрицу if (!FlashHere()) return; string buf; int num = 0; ifstream in(NAMES_DIR); while (!in.eof()) { getline(in, buf, ';'); num++; cout << num << endl; } num = num -1; names.resize(num); types.resize(num); in.clear(); in.seekg(0, ios::beg); //возврат потока в начало файла for (int i = 0; i < num; i++) { getline(in, buf, '.'); types[i] = buf; getline(in, buf, ';'); names[i] = buf; cout<< "|" << names[i] << "|" << types[i] << "|" << endl; } in.close(); } void InitFBD(vector<string> &names, vector<string> &types, Shm mymem) { int size = names.size(); for (int num = 0; num < size; num++) { const char* cname = names[num].c_str(); if (types[num] == "bool" && mymem.getType(cname) == BOOL) {cout<< num << names[num] << " is ok"<< endl;continue;} else if (types[num] == "float" && mymem.getType(cname) == FLOAT) {cout<< num << names[num] << " is ok"<< endl;continue;} else if (types[num] == "short" && mymem.getType(cname) == SHORT) {cout<< num << names[num] << " is ok"<< endl;continue;} else if (types[num] == "long" && mymem.getType(cname) == LONG) {cout<< num << names[num] << " is ok"<< endl;continue;} else{ cout<< num << " "<< "oooops";exit(1);} } cout << "oooops"; } |
16.04.2018, 14:12 | #32 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
662 раз(а) в 606 сообщениях
|
Ответ: Подключение по FTP
"Окей, гугл, что такое segmentation fault?"
"Окей, гугл, как избежать segmentation fault в ... ?" - вместо многоточия вашу проблемы в изолированном виде. Это C++, этому языку много десятков лет. В нём в принципе нет неизвестных проблем. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
16.04.2018, 14:17 | #33 |
Member
Регистрация: Mar 2018
Сообщения: 34
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Подключение по FTP
Что такое segmentation fault я знаю. я в упор не вижу где у меня тут ошибка. послднее сообщение после завершения цикла не выводится. значит ошибка где то в цикле. НО ГДЕ?! весь цикл выводится в консоль, и в нем я ошибки не вижу..
|
16.04.2018, 14:28 | #34 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 131
Благодарил(а): 15 раз(а)
Поблагодарили:
662 раз(а) в 606 сообщениях
|
Ответ: Подключение по FTP
Цитата:
У вас все проблемы, что пока встречаются, не по зубам отладчикам. В отладчике вы бы увидели ровно то же самое, что и в консоли сейчас. Алгоритмическая проблема. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
18.04.2018, 10:37 | #35 | |
Member
Регистрация: Mar 2018
Сообщения: 34
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Подключение по FTP
Цитата:
|
|
18.04.2018, 11:14 | #36 |
Уволен из Сегнетикс
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Подключение по FTP
Рекомендую вам почитать учебники или какие-нибудь гайды, на тему отлаживания программы и борьбы с этими вот ошибками. Есть методики, как можно быстро найти, на каком участке кода возникает проблема. Всё это уже давно известно.
Бьёрн Страуструп создал этот язык аж в 1983 году, с тех пор люди много методик придумали. Указываю тут имя этого человека не спроста. Он написал очень годные учебники по этому делу. __________________ В сегнетиксе не работаю с самого начала 2019 года. |