Форум программистов, компьютерный форум, киберфорум
Наши страницы

Шутки юмора

Войти
Регистрация
Восстановить пароль
 
 
darkAngel
Технофашист
217 / 200 / 4
Регистрация: 11.03.2009
Сообщений: 883
#1

Глупые ошибки и опечатки в коде - Шутки юмора

11.02.2010, 22:41. Просмотров 27470. Ответов 150
Метки нет (Все метки)

Может и была подобная тема, но всё таки.

Как известно, процесс отладки процесс более сложный, чем первоначальное написание кода. И иногда он просто выносит мозг.
Дак вот, предлагаю здесь писать о глупых ошибках, которые были допущены Вами и затягивали процесс отладки на долгие часы.


=====================================
Начну.
Сегодня часа 4 отлаживал прогу, чуть на стену не лез.
В общем, копирую рабочий код из консолки на Си в визуальную среду, всё правильно копирую - ctrl+c ctrl+v, все библиотеки подключаю. И не работает. КОпирую назда в консольку - сразу работает. Дошло до того, что в ручную заного всю прогу переписал. Проверял каждую строчку. Ну всё верно - и не работает. Магия прям.
Оказалось, проблема в указателях. В консолке почемуто не инициализированные указателя по умолчанию равны 0, а в виз. среде равны числу. Хотя компилятор один и тот же. Вот так, 5 часов потратил на эту глупость.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2010, 22:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Глупые ошибки и опечатки в коде (Шутки юмора):

Найти ошибки в коде и исправить эти ошибки (Наследование) - C++
Вот в общем 3 файла, изучаю наследование на примере односвязного и двусвязного списков: list.h (inline) #pragma once class list...

Ошибки при компиляции - исправить ошибки в коде - C (СИ)
Помогите исправить ошибки , не понимаю в чем может быть причина ... #include <conio.h> #include <stdio.h> #include <math.h> ...

Найти ошибки в коде и исправить эти ошибки - C++
Есть у меня вот такой код: #include <iostream> using namespace std; class A{ private: int* a; size_t size_; ...

Найти ошибки в коде и исправить эти ошибки - C++ - C++
Судя по вываливающейся ошибки, идет двойное освобождение памяти. У самого не получается отловить откуда. A.h #pragma once ...

ошибки в готовом коде(ошибки указаны) - Assembler
Ввести с клавиатуры строку (кол-во символов не больше 10). И определить ее длину c использованием подпрограмм. model small .stack 100h ...

Глупые вопросы - C++ Builder
Здравствуйте, ищу помощи в следующих вопросах. 1. На билдере создан некий проект, где используется форма, развернутая на полный...

150
Good-Morning
1042 / 313 / 40
Регистрация: 13.07.2013
Сообщений: 1,269
14.07.2014, 20:06 #136
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
Константа
Visual Basic
1
True = -1
- ошибка Микрософта.
Так и не рассказал суть
0
darkAngel
Технофашист
217 / 200 / 4
Регистрация: 11.03.2009
Сообщений: 883
15.07.2014, 09:18  [ТС] #137
а почему ошибка то? false = 0, а true - все остальное.
0
darkAngel
Технофашист
217 / 200 / 4
Регистрация: 11.03.2009
Сообщений: 883
22.07.2014, 11:10  [ТС] #138
Ненавижу matlab в том плане, что там используется индексация с 1, а не с 0.
Переносил на днях проект из matlab в С++. Сутки потратил на отладку. Оказалось, что в самом начале в matlab был интересный цикл, дающий смещение:
Matlab M
1
for i=0:n
дающее на самом деле диапазон смещений [0;n].
А вот невнимательный перенос кода в С++:
C++
1
for (int i = 0; i < n; ++i)
давал [1;n)
0
MLPMan
Кандёхаем веселее!
287 / 290 / 35
Регистрация: 02.10.2012
Сообщений: 2,017
05.08.2014, 02:54 #139
Я дебил, щас около 40 минут пытался найти причину переполнения стека (7)

Java
1
2
3
4
5
6
7
8
9
10
11
private void outNodes(Object n) {        
        addBeginTagWithClass("li",nodeClass);
        out.append(htmlMaker.toHtml(n));
        List children = meta.getChildrenValue(n);
        if ((children != null) && (children.size() != 0)) {
            addBeginTagWithClass("ul", listClass);
            for (Object i : children) outNodes(n);//out.append("child!");
            out.append("</ul>");
        }
        out.append("</li>");
    }
Пока не сделал "гениальную" проверку, запустив в метод "маленький" объект с несколькими детьми, и увидел, что всё равно вызывается дофига раз.

Добавлено через 2 минуты

Не по теме:

Конечно, часть вины ложится на автоподставление парам-ов в IDE, сам бы я вряд ли n туда написал.

0
XZentus
201 / 199 / 41
Регистрация: 06.10.2013
Сообщений: 552
31.10.2014, 23:07 #140
C
1
2
3
4
5
6
7
8
9
10
11
/* Глобальная переменная, единственное место хранения количества хэшей.
Т.е. если бы была ошибка где-то в алгоритме, здесь, скорее всего, было бы левое значение*/
int nhash = 0; 
//...
 
int main(int argn, char *argv[]) {
//...
    //nkeyhash в своих недрах активно использует nhash, при чем только увеличивая значение
    printf("\n%lli\t%d\n", nkeyshash(argv[1], argv[2]), nhash);
    return 0;
}
Глупая ошибка, но час потратил, пока не понял, почему nhash всегда показывал 0.
Хотя, если бы там действительно был ноль на момент завершения работы, программа выдавала бы неверное значение nkeyshash(...)

P.S. Кстати, результат не зависел от ключей оптимизации.
0
taras atavin
3571 / 1755 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
01.11.2014, 05:49 #141
Цитата Сообщение от darkAngel Посмотреть сообщение
а почему ошибка то? false = 0, а true - все остальное.
Здесь прикол в том, что -1, а минус - это отрицание.
0
Max_Great_Tanker
46 / 53 / 14
Регистрация: 31.03.2015
Сообщений: 264
03.06.2015, 14:28 #142
Чудеса...
1) Недавно "для общего развития" немножко поизучал C++. Писал код. И тут -- "неопознанный идентификатор cin", или что то подобное. Полчаса мучался. Не идёт -- и всё. Зашёл я на сайт с уроками и скопировал оттуда этот cin. И вдруг, представляете, заработало!
2) Сегодня писал такую web-штуку, чтобы задавался стиль в зависимости от размеров экрана. Конкретнее, размер шрифта. Для вертикальной ориентации надо было побольше. Поэтому получилось что-то такое: '@media (orientationortrait) {...} @media (orientation:landscape) {...}'. Внутри '+fontsize+', '+bigfontsize+' и т.п. Проверяю. Для горизонтальной ориентации всё хорошо, а с вертикальной какая-то бяка. Полчаса вожусь, ищу ошибку. Нет её! Нет! Перепечатываю тоже самое ещё раз -- и о чудо! всё работает...
0
Evg
Эксперт CАвтор FAQ
18458 / 6508 / 455
Регистрация: 30.03.2009
Сообщений: 18,166
Записей в блоге: 29
03.06.2015, 14:55 #143
Цитата Сообщение от Max_Great_Tanje Посмотреть сообщение
Чудеса...

Не по теме:

Много раз было такое, что люди говорят, что всё делают по инструкции, но у них ничего не работает. Приходишь, смотришь. В инструкции написано "нарисовать залёный квадрат", а люди рисуют жёлтый треугольник. Для меня до сих пор загадка, почему людям кажется, что они делают всё по инструкции

0
SoftIce
comment ca va
10256 / 3767 / 967
Регистрация: 27.07.2011
Сообщений: 9,108
Завершенные тесты: 1
03.06.2015, 14:59 #144
Цитата Сообщение от Max_Great_Tanje Посмотреть сообщение
Перепечатываю тоже самое ещё раз -- и о чудо! всё работает..
стопятьсот раз так у меня было, и каждый раз это была моя ошибка, а не компилятора
0
Max_Great_Tanker
46 / 53 / 14
Регистрация: 31.03.2015
Сообщений: 264
03.06.2015, 15:03 #145
Evg, тут дело не в этом. Это я делал безо всяких инструкций Тут красный круг рисуется просто не с первого раза
SoftIce, если что, там не компилятор. во втором случае
А в первом случае я разницу между cin и cin так и не нашёл
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6523 / 3162 / 311
Регистрация: 04.12.2011
Сообщений: 8,764
Записей в блоге: 5
03.06.2015, 15:56 #146
Цитата Сообщение от SoftIce Посмотреть сообщение
стопятьсот раз так у меня было, и каждый раз это была моя ошибка, а не компилятора
Я тоже замечал. Прочёл как-то, что windows не подходит для моделирования надёжных систем реального времени. Оказывается в ряде случаев обработка события может занять аж 200 мс (пишу по памяти). Но человек средней упитанности и ни чем не примечательной внешности может нажать Ctrl+LShift и клавишу "c" с интервалом менее 10мс, - то есть почти мгновенно. А начертание "с" русского и латинского расклада в большинстве шрифтов неотличимо. Вот и выходит иной раз, что буква i уже не "ш", а "c" еще русская. Наглаз трудно определить, но можно написать прожку выводящую unicode коды для введенной строки, например, и убедиться. Потому и стараюсь копипастом делать всё, что только можно. Хотя копипаст сам по себе является источником множества ошибок. Древние не даром говорили: Копипаст на ошибки горазд!
1
Evg
Эксперт CАвтор FAQ
18458 / 6508 / 455
Регистрация: 30.03.2009
Сообщений: 18,166
Записей в блоге: 29
03.06.2015, 16:14 #147
Компилятор gcc явно ругается на наличие русских букв. Sun'овский cc (причём довольно древний) тоже. Проверил на clang и icc - тоже ругаются именно на русские буквы. Наверняка msvs и borland тоже так умеют. А потому нужно очень сильно постараться, чтобы такое сообщение об ошибке не понять
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6523 / 3162 / 311
Регистрация: 04.12.2011
Сообщений: 8,764
Записей в блоге: 5
03.06.2015, 16:21 #148
Цитата Сообщение от Evg Посмотреть сообщение
А потому нужно очень сильно постараться, чтобы такое сообщение об ошибке не понять
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream> 
using namespace std;
int main()
{
int helloWorld(0);
сin>>helloWorld;
cout<<endl;
system("pause");
return 01;
}
Что тут можно понять:
Ошибка 1 error C2065: сin: необъявленный идентификатор c:\users\ig\documents\visual studio 2008\projects\projects\...
догадаться то можно. Я и догадался.
0
Evg
Эксперт CАвтор FAQ
18458 / 6508 / 455
Регистрация: 30.03.2009
Сообщений: 18,166
Записей в блоге: 29
03.06.2015, 17:16 #149
Цитата Сообщение от IGPIGP Посмотреть сообщение
необъявленный идентификатор
Всё-таки msvs более тупой. Вот для сравнения выдача от gcc (куда более очевидная)

Код
t.cc:6: error: stray '\323' in program
t.cc: In function 'int main()':
t.cc:6: error: 'in' was not declared in this scope
Добавлено через 1 минуту
Собственно, тогда проблема с cin'ом становится понятная. И причина её - плохая диагностика от компилятора. Понятно, что первоочердная причина - ошибка программиста, но своё слово сказала именно "плохая" диагностика со стороны компилятора
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6523 / 3162 / 311
Регистрация: 04.12.2011
Сообщений: 8,764
Записей в блоге: 5
03.06.2015, 19:20 #150
Цитата Сообщение от Evg Посмотреть сообщение
Собственно, тогда проблема с cin'ом становится понятная.
Она же и с cout'ом
Прикол в том, что смотришь в строку и чувствуешь что кумпол двоится. Это особенно ночью забойно.
0
03.06.2015, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2015, 19:20
Привет! Вот еще темы с ответами:

Как передать в функцию несколько аргументов, и другие глупые вопросы - C++
Доброго времени суток. Накопилось несколько вопросов, от простых до очень простых, и все же нужную информацию по ним не нашел. Глупо для...

Перенаправление на другой запрос из-за опечатки - SEO
Всем доброго времени суток. У будущего сайта есть название. Но если ввести его в яндекс или гугл они находят опечатку и перенаправляют на...

Ошибки в коде - Java
Дело такое, есть код, как его надо исправить, чтобы он работал корректно при возникновении любых ошибок IO? class Task4 { public...

Ошибки в коде - PHP
не мой скрипт просто увидел что появилось мб кто знает что делать !? Warning: Missing argument 2 for Users::uname(), called in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
150
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.