-
- Все норм, если не будешь использовать cчитанное значение x после цикла. Ненормально только сравнение в if так как NULL это((void *) 0) - Petrovich(24.08.2017 13:15, )
- Не надо лазать в массив за его пределы. Address Sanitizer или valgrind могут сильно не одобрить. - fk0(24.08.2017 15:02)
- И не инициализированная переменная на первой итерации - тоже норм? Хорошо что ты не попал в "мою бывшую контору" )) - POV_(24.08.2017 13:33, )
- А оно может у тебя вне функции объявлена, ты ж такой :)) - Petrovich(24.08.2017 13:39, )
- ну ты хоть обсуждение почитай, глупые вопросы отпадут. - POV_(24.08.2017 13:41, )
- Читаю. Особенно порадовало вот это: "Не спорь. Тут клиника. Он даже не понял что последнее извлеченное значение попросту НЕ МОЖЕТ использоваться т.к. цикл закончился.". Дальше читать уже нет сил :) Petrovich(63 знак., 24.08.2017 13:53, )
- Просим, просим! - SciFi(24.08.2017 13:59)
- Рассказывай. Крайне интересно - POV_(24.08.2017 13:57, )
- Ну, слушай. Первое: Может или не может читаться Petrovich(223 знак., 24.08.2017 14:01, )
- Что за набор слов? Перелогинтесь, пан Кличко... а для понимания представь что SIZE=1 и погляди что будет - POV_(24.08.2017 14:05, )
- Никто не скажет тебе что будет. Там при любом SIZE будет некорректное сравнение с указателем, поэтому я тебе сразу сказал: проблема в IF. Она тебе может вылезти и при SIZE=10. - Petrovich(24.08.2017 14:09, )
- Ты проанализируй работу цикла, а не говори первое что в голову приходит. - POV_(24.08.2017 14:11, )
- Проанализировать? Ты сначала научись фигурные скобки ставить и скажи что у тебя внутри гнилого IF находится. Потом требуй анализа :) - Petrovich(24.08.2017 14:14, )
- До if дело с этим неверным значением не дойдёт. Нечего там ставить и говорить. - POV_(24.08.2017 14:17, )
- Ааааа! Не дойдет даже до IFа? Ну, тогда всё понятно :) - Petrovich(24.08.2017 14:18, )
- У тебя сомнения? Ты ета.. свечку бы поставил что-ли. - POV_(24.08.2017 14:21, )
- За тебя? Ладно. Скажи только, как тебя зовут и крещеный ли ты. - Petrovich(24.08.2017 14:32, )
- У тебя сомнения? Ты ета.. свечку бы поставил что-ли. - POV_(24.08.2017 14:21, )
- Ааааа! Не дойдет даже до IFа? Ну, тогда всё понятно :) - Petrovich(24.08.2017 14:18, )
- До if дело с этим неверным значением не дойдёт. Нечего там ставить и говорить. - POV_(24.08.2017 14:17, )
- Проанализировать? Ты сначала научись фигурные скобки ставить и скажи что у тебя внутри гнилого IF находится. Потом требуй анализа :) - Petrovich(24.08.2017 14:14, )
- Ты проанализируй работу цикла, а не говори первое что в голову приходит. - POV_(24.08.2017 14:11, )
- Никто не скажет тебе что будет. Там при любом SIZE будет некорректное сравнение с указателем, поэтому я тебе сразу сказал: проблема в IF. Она тебе может вылезти и при SIZE=10. - Petrovich(24.08.2017 14:09, )
- Что за набор слов? Перелогинтесь, пан Кличко... а для понимания представь что SIZE=1 и погляди что будет - POV_(24.08.2017 14:05, )
- Ну, слушай. Первое: Может или не может читаться Petrovich(223 знак., 24.08.2017 14:01, )
- Читаю. Особенно порадовало вот это: "Не спорь. Тут клиника. Он даже не понял что последнее извлеченное значение попросту НЕ МОЖЕТ использоваться т.к. цикл закончился.". Дальше читать уже нет сил :) Petrovich(63 знак., 24.08.2017 13:53, )
- ну ты хоть обсуждение почитай, глупые вопросы отпадут. - POV_(24.08.2017 13:41, )
- А оно может у тебя вне функции объявлена, ты ж такой :)) - Petrovich(24.08.2017 13:39, )
- Не надо ляля. Читать за границами массива запрещено, это неопределённое поведение. Нынешний GCC в таких случаях вообще страшные вещи может вытворять, и будет в своём праве. Где-то встречал пример, но сразу и не вспомню... - SciFi(24.08.2017 13:18)
- Это Си,сынок. Читай хоть обчитайся. - Petrovich(24.08.2017 13:19, )
- Мне можешь ничего не рассказывать, папаша. А вот если какой-то неокрепший ум вдруг решит, что ты не 3,14здишь, и получит от UB укус в задницу, то он будет знать, кого благодарить :-) - SciFi(24.08.2017 13:26)
- Никогда еще в Си не бывало проблем из-за операций чтения RAM. Впрочем, давай примеры обратного - Petrovich(24.08.2017 13:38, )
- Ровно на этой переменной сегмент кончается и получи сегфолт. - fk0(24.08.2017 15:03)
- все таки, это проблемы конкретного ядра, а не языка - 0men(24.08.2017 15:49)
- Вот --> SciFi(131 знак., 24.08.2017 13:39, ссылка)
- Ровно на этой переменной сегмент кончается и получи сегфолт. - fk0(24.08.2017 15:03)
- Не спорь. Тут клиника. Он даже не понял что последнее извлеченное значение попросту НЕ МОЖЕТ использоваться т.к. цикл закончился. - POV_(24.08.2017 13:34, )
- Ну да, это ты фигню сморозил. Проблема там именно в выходе за пределы массива. Ну и первоначальное значение x может быть чем угодно. В остальном - чики-пуки. - SciFi(24.08.2017 14:05)
- пусть SIZE=1. вот после первой итерации i становится равным 1, тут же извлекаем "из-за" массива значение array[1] и .... покидаем цикл так и не задействовав это самое значение. - POV_(24.08.2017 14:09, )
- Петрович намекает на то, что после цикла вполне может быть код, который использует x. Короче, ты слишком расплывчато выразился, а теперь вы кидаетесь какашками на этой почве, ни грамма не прибавляя к сути. - SciFi(24.08.2017 14:14)
- См. выше - он упирает на условие внутри цикла. Так что он точно свою невнимательность продемонстрировал. А сейчас выкручивается зачем-то. - POV_(24.08.2017 14:16, )
- Ты вот пойми одно: даже если ты зараньше проинициилизируешь X, он при некорректном сравнении с указателем может дать любой результат сравнения. И в принципе, ничем не будет отличаться от неинициализованного Х. - Petrovich(24.08.2017 14:21, )
- Ты упорно игноришь факт что при i==SIZE до проверки условия дело не дойдёт. - POV_(24.08.2017 14:23, )
- Ты вот пойми одно: даже если ты зараньше проинициилизируешь X, он при некорректном сравнении с указателем может дать любой результат сравнения. И в принципе, ничем не будет отличаться от неинициализованного Х. - Petrovich(24.08.2017 14:21, )
- См. выше - он упирает на условие внутри цикла. Так что он точно свою невнимательность продемонстрировал. А сейчас выкручивается зачем-то. - POV_(24.08.2017 14:16, )
- Петрович намекает на то, что после цикла вполне может быть код, который использует x. Короче, ты слишком расплывчато выразился, а теперь вы кидаетесь какашками на этой почве, ни грамма не прибавляя к сути. - SciFi(24.08.2017 14:14)
- пусть SIZE=1. вот после первой итерации i становится равным 1, тут же извлекаем "из-за" массива значение array[1] и .... покидаем цикл так и не задействовав это самое значение. - POV_(24.08.2017 14:09, )
- Ну да, это ты фигню сморозил. Проблема там именно в выходе за пределы массива. Ну и первоначальное значение x может быть чем угодно. В остальном - чики-пуки. - SciFi(24.08.2017 14:05)
- Никогда еще в Си не бывало проблем из-за операций чтения RAM. Впрочем, давай примеры обратного - Petrovich(24.08.2017 13:38, )
- Мне можешь ничего не рассказывать, папаша. А вот если какой-то неокрепший ум вдруг решит, что ты не 3,14здишь, и получит от UB укус в задницу, то он будет знать, кого благодарить :-) - SciFi(24.08.2017 13:26)
- Это Си,сынок. Читай хоть обчитайся. - Petrovich(24.08.2017 13:19, )
- Префиксное пофиг, так как запятая служит разделителем. А так да, так нельзя. Я думаю, ты переврал этот код. Наверное, вырезал важные куски. Опять же, схерали SIZE и MAX? Кто сказал, что это одно и то же? - SciFi(24.08.2017 12:47 - 12:49)
- Не MAX.. конечно же SIZE, опечатался. Код не перевран. Сейчас консилиум был, решили что всё же код косячный, но непонятно как это может распространяться за бабло. - POV_(24.08.2017 12:51, )
- Ещё непонятно, переменные объявлены внутри функции или снаружи. Если x - глобальная переменная, то она инициализирована. - SciFi(24.08.2017 13:08)
- Локальное. Без инициализации. И этот x - вообще callback.. инт я для простоты написал. - POV_(24.08.2017 13:09, )
- Вот нашёл смачный пример, сильно машет на твой: SciFi(852 знак., 24.08.2017 13:38, ссылка)
- Класс! - POV_(24.08.2017 13:43, )
- Вот нашёл смачный пример, сильно машет на твой: SciFi(852 знак., 24.08.2017 13:38, ссылка)
- Локальное. Без инициализации. И этот x - вообще callback.. инт я для простоты написал. - POV_(24.08.2017 13:09, )
- Хехе. Кто сказал, что если за бабло, то без косяков? Именно поэтому за бабло любят толкать closed source: всё это говнище спрятано внутре :-) - SciFi(24.08.2017 12:53)
- Ещё непонятно, переменные объявлены внутри функции или снаружи. Если x - глобальная переменная, то она инициализирована. - SciFi(24.08.2017 13:08)
- Не MAX.. конечно же SIZE, опечатался. Код не перевран. Сейчас консилиум был, решили что всё же код косячный, но непонятно как это может распространяться за бабло. - POV_(24.08.2017 12:51, )
- Да, речь про GCC, убунта - POV_(24.08.2017 12:29, )
- Все норм, если не будешь использовать cчитанное значение x после цикла. Ненормально только сравнение в if так как NULL это((void *) 0) - Petrovich(24.08.2017 13:15, )