- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
program Project2;
procedure test1;
var
arr:array[0..32] of char;
begin
fillchar(arr,sizeof(arr),'A');
end;
procedure test2;
var
arr:array[0..32] of char;
begin
fillchar(arr,sizeof(arr) div 2,'B');
writeln(arr);
end;
begin
test1;
test2;
//BBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA
readln;
end.
Разве это UB? На мой взгляд это вполне ожидаемое поведение.
... поэтому использовать их значения без инициализации - самый настоящий UB.
If an object that has automatic storage duration is not initialized explicitly, its value is indeterminate.
Сертифицированный компилятор при обращении к переменной может возвращать мусор, однако не имеет права отформатировать диск.
Use of an unspecified value, or other behavior where this International Standard provides
two or more possibilities and imposes no further requirements on which is chosen in any
instance
For Yankees normal behaviour is to write “behavior”, while for British normal behavior is to write “behaviour”.
во втором случае у адреса есть микроскопичейский но все же шанс попасть на шину и вызвать чтение из какого-то устройства
а там уже как бог пошлет
Вообще чтение же часто имеет сайдэффект. Кажется, i8042 не обрабатывал новые нажатия пока ты не считаешь с него сканкод
Особенно из USB (чтение кидает запрос "есть чо?").
Коран?
undefined behavior
unspecified behavior
implementation-defined behavior
<...>
- An unmatched ' or " character is encountered on a logical source line during tokenization.
- The identifier _ _func_ _ is explicitly declared.
Бойся сишных компиляторов. Они даже за незакрытую кавычку яйца отстрелят.
The characters ', \, ", //, or /* occur in the sequence between the < and > delimiters, or the characters ', \, //, or /* occur in the sequence between the " delimiters, in a header name preprocessing token
#include <some\library\header.h>, как любят писать виндузятники...
#include < /* а почему нельзя тут комментировать?*/ stdio.h >
#include <1.h> // BOOM!
int i; // так случилось что i = 122342
(*(*int)i) = 42;
А на этом компьютере по адресу 122342 расположен MMIO дискового контроллера, который при записи туда числа 42 форматирует диск согласно спецификации своего протокола
основным свойством лямбд является возможность педерачи их как аргументов или длительного хранения в переменной.
стек за это время может 100500 раз перетереться
Что случается с автоматической переменной которую захватила кложа после того, как стек опустошили?
В некоторых языках она копируется в кложу, но тогда она readonly.
В частности в жабе надо её явно final делать.
В объективных сях она (с ключ словом block) улетает в кучу и реально превращается в указатель
В шарпике не помню как, надо читат
Да, тема нетривиальная.
>Что случается с автоматической переменной которую захватила кложа после того, как стек опустошили?
А тут интересный вопрос. Можно смотреть если лямбда убегает со стека, то только тогда двигать её в кучу. А если создали переменную и лямбду на стеке, передали в какой-то [1,2,3].each() и тут же выбросили, то смысла срать в кучу нет.
>В частности в жабе надо её явно final делать.
В жабе всё страшно. Переменная неявно становится членом замыканияанонимного класса.
Там свои нюансы в виде повышенного использования памяти при использовании анонимных инициализаторов.
А где не так?
Тогда это хацкирство, а не серьезное программирование.
Это как я в sqlе использовал union для неявной сортировки. Благо оно не сломалось, а ведь могло!
Зато я слышал истории людей у который в оракле так же красно-чёрный GROUP BY сортировал, а потом эти гады запилили вместо него хэши и случился небольшой пиетет.
Лет 10 назад в базы кроме B-Tree начали активно впиливать хэши. И делать соответствующие оптимизации.
Это как складывать уникальные в хешмап.
сами себе дураки
прекратите называть автоматические переменные стековыми
это же не грамотно!
Если каждый раз после того как ты ешь манную кашу у тебя из жопы вылезает белый кролик - то это нормально, хоть в учебнике по анатомии ничего такого нет. А если этот кролик пытается отгрызть тебе хуй - это уже UB и повод сходить к практологу
Пресвятая наивность...
Это архитектура просто неудачная. Если какую-нибудь ECC память заюзать и помечать этими лишними битами инициализированность...
ты же сейчас про реальный режим говоришь, да?
потому что если про защищенный то ты реальне считаешь что обращение по адресу 0xуйзнаетгде успешно пройдет MMU, попадет в читабельную страницу с пометкой "в памяти", не найдется в кеше, и контроллер памяти попытается её считать и только чексумма ECC профейлится?
Проблемы с кешем решаемы - мы же свою рахитектуру пилим. Кеш тоже придётся сделать с флажком "не инициализированно".
А лишний бит от ецц - просто как способ хранения этих флажков. Чтобы и память не пришлось редизайнить.
а TLB резиновый??
>>мы же свою рахитектуру пилим
чтото я перестал тебя понимат
>>А лишний бит от ецц - просто как способ хранения этих флажков.
чексумму у ECC проверяет контроллер памяти (или даже IO logic у DIMM), до проца эта информация просто не дойдет
удобно
будет ли это краш или нет -- зависит от окружения и процессора
1) где-то почти всегда будет краш (mac os)
2) где-то -- как повезет (ms-dos)
Детектор тупых твинков зашкалило. Гипотеза о переизбытке тупых твинков подтверждена.
Я настоящий!
http://xn-----vlcbbirqlhw.xn--p1ai/all-seasons/2-season/vspomnit-veh-seh-jjo-2-sezon-4-seriya
Отличное название домена. Запоминающееся...
З.Ы. Я 90% ссылок на ролики не открываю, т.к. ролики - линейная хуйня, которую нельзя по диагонали прочитать... Текст или картинки в этом отношении намного удобней...
Это потому что дедлайн не проставлен.
Имхо возраст у тебя не тот. что бы Робинзона Крузо читать. Мне кажется это такое, подростковое, не залетит.
Да почему, норм читается. Я просто в детстве его почему-то пропустил...
Достоевский хорош. Даром что не фантаст, и то читал
Too hard. Нечитабельно. Или ты про другого Толстого, который про гиперболоид писал?
> Достоевский хорош.
Да, но я вроде всё интересное у него уже читал.
З.Ы. Мне уроки литературы напрочь отбили интерес к классике. Уже столько лет прошло, а до сих пор аж страшно открывать эти книжки...
Из Достоевского очень понравился Идиот
Имхо в школе еще нечего не понимаешь, а тебе такие умные книжки впихивают. Классику надо в осознанном возрасте читать
И ты это говоришь человеку, который спит с дакимакурой...
А я так и не заказал. обнимаю обычную подушку
Ну, я с того разговора в недавнем треде так ничего и не посмотрел. Ни рика ни няшек.
ты вообще человек?
не еду же разглядывать
ох уж эти люди, которые не прожили лучше годы своей молодости в общаге
Тарелку с едой. Иногда ГК листаю на планшетке.
> ты вообще человек?
Вошь ли я, как все, или человек? Смогу ли я переступить или не смогу! Осмелюсь ли нагнуться и взять или нет? Тварь ли я дрожащая или право имею...
Прочти содержание. В смысле, заголовки всех глав. В принципе, этого достаточно. Хотя и полное название спойлит всё.
их можно только стримом читать