Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2012, 18:21   #1
Ksardas13
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 120
Печаль Run-time error или мне нужно кому нить поплакаться в тельняшку

Описываю ситуацию, после которой будет вопрос:

Есть некая система Ejudge, которой пользуется Яндекс для проверки тестовых заданий, которые ему шлют соискатели его милости.
Т.е. отсылается cpp файл консольного приложения, компилируется в системе, получает вводные данные и выдаёт результат.
На моей машине такой файлик работает прекрасно, компилится, запускается, считает, отвечает... Загружаю в систему(выбрав g++ GNU C++ 4.3.2) - там пишется run-time error, с пометкой Signal 11 (SIGSEGV)... Т.е. какие то траблы с памятью... может кто сталкивался или имеет предположения в чём косяк?

В проге идёт работа со строками... т.е. очень много массивов char, которые режут и переклеивают... командами strcat и еже с ними... строки принимаются командами get(), другие данные командами cin...
Ощущение, что проблема именно с cin... Сначала прога принимает две строки, затем число... я понавставлял cout после каждой строчки - две введённые строки принимаются нормально, а вот после ввода числа похоже всё рушиться...

Код весь приводить не буду(там много букф)... вопрос, собственно, вот потому что я написал есть возможность прикинуть в чём ошибка? Или что ещё можно сделать, чтобы разобраться....
Пока пойду биться лбом об стенку дальше...
Ksardas13 вне форума Ответить с цитированием
Старый 03.09.2012, 18:38   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

очень много массивов char, которые режут и переклеивают... командами strcat и еже с ними... строки принимаются командами get()

дальше можно не продолжать.
что-то где-то не довыделено, забыт завершающеий ноль, возможное переполнение...
короче, кривая работа со строками и динамической памятью.

Решение: выкинуть этот ужоснах, переписать на C++
Rififi вне форума Ответить с цитированием
Старый 04.09.2012, 03:35   #3
Ksardas13
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 120
Радость

Печаль.
А тогда вопрос в догонку для облегчения существования: какими инструментами удобнее всего резать строки, принимать, парсить, сшивать и тп в С++?
В остальном спасибо!)) Пойду всё переделывать((((
Ksardas13 вне форума Ответить с цитированием
Старый 04.09.2012, 08:03   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вы бы код привели, тут бы посмотрели и направили... а так разговор о сферическом коде в вакуууууме.
p51x вне форума Ответить с цитированием
Старый 04.09.2012, 10:37   #5
Ksardas13
Форумчанин
 
Регистрация: 24.03.2011
Сообщений: 120
По умолчанию

Да я боюсь мне по шее дадут, если я приведу решения(а у меня по сути решение, если не учитывать что оно страшное и не без пороков) одной из задач в сети.)) Да и там cpp файл на 30 Кб... так что всё моё.... кто если не я. "...Другой совершит ошибку."))
Ksardas13 вне форума Ответить с цитированием
Старый 04.09.2012, 12:54   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Ksardas13

А тогда вопрос в догонку для облегчения существования: какими инструментами удобнее всего резать строки, принимать, парсить, сшивать и тп в С++?

Большая часть искомого предоставляется классом std::string - см. функции find_*, substr, erase/replace и пр.

сшивать - элементарно, в естесственном виде:
std::string A = "foo", B = "bar";
A += B;
Rififi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Run-time error 1004 (VBA) Aleksy89 Microsoft Office Excel 6 09.08.2012 13:25
Run-time error '5692' caute Microsoft Office Word 11 09.10.2011 20:45
Периодическая ошибка Run-time error -2147417848 (80010108) Automation error в файле с макросом faraviper Microsoft Office Excel 0 24.02.2011 16:23
Run-time error 13 olimpus Microsoft Office Excel 11 25.12.2010 22:49
Ошибка Run-Time error 13 DEZuv Microsoft Office Access 0 03.04.2009 12:25