| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Функция два раза подряд не.... |
| Автор: apook 6.8.2006, 10:25 |
| Ни как не врублюсь. Есть функция возврашающая -1 в случае ошибки Так вот если запустить ее один раз с параметро заведомо возращающими > -1 все отлично а если сразу запустить ее же с теми же параметрами то она возвращает -1 (ну или правильно >0 как будет настроение) Тенденцию при каких случаях она все же нормально сробатывает я так и не уловил Понял одно : ECЛИ после первого запуска написать printf (" "); или cout << " "; то второй раз срабатывает правильно. |
| Автор: vinter 6.8.2006, 10:31 |
| Давай текст ф-ии.. |
| Автор: apook 6.8.2006, 10:58 | ||
?? Название естественно не принципиально
|
| Автор: ptr 6.8.2006, 12:02 |
| Да что-то ты намудрил. Покажи как вызываешь функцию. И ещё поясни что она делает, например, зачем нужен flg. |
| Автор: vinter 6.8.2006, 12:13 | ||||||
У меня вот так работает без проблем...Всегда инициализируй переменные когда их определяешь, т.к может быть исп. неинициализированная переменная из за чего могут быть "глюки". Как раз из за неинициализации у меня тоже ошибочно выводило..
Совпадение
Тоже кстати не понял |
| Автор: apook 6.8.2006, 13:21 | ||||||||
Вызывал в целях тестирования по разному, во всех случаях имеется тенденция к этому глюку Например: x = strccmp(buf, argv[1], 'L'); тут-же y = strccmp(buf, argv[1], 'L'); cout << x << " " << y << endl; Получим 15 -1 и т.д Я уже не говорю о включении в оператор if если к примеру надо зделать так: if ((strccmp(......,'R') > -1) && (strccmp(.....,'L') < 20))
вообще это поиск подстроки в строке(стандартные одолели своей ограниченностью) flg по замыслу типа флаг Параметер L - left R-right т.е слева или справа Надо понимать вернуть первое вхождение или последнее
Совпадение не совпадение а всегда сробатывает Но конечно не серьезно использовать такой "прием"
Ща испытаю эту фишку |
| Автор: apook 6.8.2006, 14:00 | ||
Совет и впрямь оказался полезным А тогда почему бы компилятору так не делать или в целях экономии времени Ну в общем причины могут быть (например экономия времени ) |
| Автор: vinter 6.8.2006, 14:14 | ||
так он инициализирует только произвольными значениями... |
| Автор: Oleg_Ci 6.8.2006, 14:55 | ||
Мой велосипед
|
| Автор: BreakPointMAN 6.8.2006, 15:01 |
Это уже гигабайт получается... ;) |
| Автор: Mayk 6.8.2006, 15:24 |
fixed |
| Автор: apook 6.8.2006, 16:08 | ||||
Конечно с флагом R перестарался можно просто к первому вхождению прибавить стрлен он строки dest .Но ниче пригодится . Короче в следующих великах....
Аааа !! понял !! (почти) но не важно |
| Автор: ManiaK 9.8.2006, 15:06 |
Шо, rand для каждого байтика что ли запускает? Не инициализирует он их. Кстати, шестая студия в Debug-сборке забивает всю выделяемую раму определёнными значениями (по-моему нулями), а в Release - нет. Поэтому иногда в Debug программы, где не инициализируются переменные нормально работают, а хочешь релизнуть - хоть вешайся... |
| Автор: vinter 9.8.2006, 17:52 | ||||
Да ну?? то есть создал переменную и все, там ничего нет??Какое либо значение в ней все равно содержится! И как это не назови инициализация или нет все равно у переменной есть какое-то значение!
Нет просто берет мусор из памяти |
| Автор: Mayk 9.8.2006, 18:03 | ||||
Ну да. Содержится. Только "содержать" вообще не значит "инициализировать".
Разве компилятор делает это? Нет. Он НЕ присваивет значение. Он использует имеющийся мусор. А раз он не присваивает значение, то ни о какой инициализации речи нет. a = b; <- вот присвоение. mov [ebp+var], 4 - вот присвоение. А использование мусора - это использование мусора. И не больше. |
| Автор: vinter 9.8.2006, 19:29 | ||||
не почистили ax вначале..и вот у нас в var содержится мусор(например адрес сегмента данных), и мы им начинаем пользоваться.. так а чем компилер хуже??
Тогда назовите мне пожалуйста слово которым можно охарактеризовать действия компилятора, если вам так не нравится слово инициализация.. |
| Автор: Mayk 9.8.2006, 19:37 | ||||||
Отведение памяти. Именно это и делает компилятор.
|
| Автор: ManiaK 10.8.2006, 12:25 |
| Mayk, респект |
| Автор: MoZy 10.8.2006, 18:59 | ||
слово хорошее, но не к месту |