Необъяснимые Случаи в Программировании и Айти

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 พ.ย. 2024

ความคิดเห็น • 48

  • @Tim.Akhmedov
    @Tim.Akhmedov 11 ชั่วโมงที่ผ่านมา +13

    По поводу обращения к неинициализированной переменной в С/С++: на сколько помню курс по С из универа - при объявлении переменнрой определенного типа за ней резирвируется место в оперативной памяти нужного размера. Но для оптимизации и ускорения выполнения значение, которое уже записано в этой области, не очищается (так, кстати, много где работает - это поведение, в частности, является причиной нашумевшей в одно время уязвимости Spectr для кучи процов Интел и немного АМД). В итоге если попробовать в программе на С обратится к такой переменной - она выдаст значение, которое было записано в памяти ранее - то есть какой-то мусор. При том оно вообще может не быть "полноценным" значением - возможно это кусок от какого-то более длинного типа

  • @b4shtirk1n
    @b4shtirk1n 10 ชั่วโมงที่ผ่านมา +12

    мдэээ, малютка мабильщик узнал про базу спустя 3 года

    • @binido_
      @binido_ 9 ชั่วโมงที่ผ่านมา

      ну, как факт, для того чтоб на работу попасть особо много знать не нужно

    • @несмак
      @несмак 9 ชั่วโมงที่ผ่านมา

      и курсы уже продает, все по канонам )

    • @KKholin
      @KKholin 8 ชั่วโมงที่ผ่านมา

      Чел рассказывает про выход за пределы памяти, обосновывая это "магией". Сразу видно, собесы на сеньора тянем

    • @KKholin
      @KKholin 8 ชั่วโมงที่ผ่านมา

      или многопоточность в пайтоне, в котором GIL) ахахаха

  • @PythonPathMaster
    @PythonPathMaster 4 ชั่วโมงที่ผ่านมา +1

    О) Автор узнал, что 0 - это False. Загадки природы не иначе))

  • @MafJora
    @MafJora 9 ชั่วโมงที่ผ่านมา

    2:33 Решение. Откройте Dev Tools в браузере (копка F12), вкладка "консоль". Наберите строку помеченную префиксом " >" нажмите Enter. Результат исполнения одна строка ниже:
    > let a = {} + [];
    undefined
    >console.log(a);
    [object Object]

  • @Ryazanec13
    @Ryazanec13 9 ชั่วโมงที่ผ่านมา

    Если в си создается переменная, но не инициализируется, то программа просто выделяет ячейку памяти под переменную, при этом не затирая эту ячейку памяти, что в этой ячейке хранилось раньше - неизвестно ни кому, там может быть и ноль, может быть и кусок строки и т.д, поэтому переменные в си нужно всегда инициализировать. Массив в языке си это указатель на первый элемент массива, а так как в си не запрещена матеамтика с указателями, то их можно и складывать и вычитать и по сути i[5] это прибавить к указателю число 5 - то есть сдвинуть на 5 элементов по массиву. Таким образом можно пройтись по чужим данным в памяти или вообще слить дамп оперативки. Так распаковывают запакоавнные программы для взлома - просто берут дамп памяти и ищут точку входа приложения, обрезают дамп и груба говорю распакованный экзешник у вас в руках, это очень мощный инструмент, но при неправильном использовании можно и систему в синий экран легко загнать, если не читать дамп а записать туда что то за пределами своей выделенной памяти. аким же образом ищутся значения для читов в играх, просто в оперативке ищется значение количества золота например и правится, прямо в оперативке прямо во время игры. Сейчас эти данные кодируют для защиты от такого, но найти все равно можно, если знаешь, что искать. Cоветую так же задаться вопросом nil==nil ?

  • @cuberbug
    @cuberbug 11 ชั่วโมงที่ผ่านมา +2

    О, новая душная рубрика с неожиданным поворотом в конце!
    Выражаю своё наидушнейшее одобрение 🐳

  • @slavikkurganov3046
    @slavikkurganov3046 8 ชั่วโมงที่ผ่านมา

    5:07 поверил что TH-cam зависим,даже перезагрузил его 😂

  • @Ais_Hunt
    @Ais_Hunt 2 ชั่วโมงที่ผ่านมา

    Хм... ну то что плюсы дают подобное вытворять, это же всё отдается на откуп программисту. А вот например уже для той же много поточности в разных языках есть свои методы синхронизации потоков исполнения, те же критические секции, симафоры, и т.д. И вроде питон умеет выполняться только в одном потоке разве нет?
    JavaScript - это JavaScript тут сложно что-то говорить)
    Ты не достаточно задушнил)
    Есть такая штука, точнее свод правил, MISRA, там такую хрень с наименованием ещё на этапе написания кода исключают ) Ну всё можно открывать окно.

  • @TigerRUS
    @TigerRUS 10 ชั่วโมงที่ผ่านมา +1

    Карен Макарен хорошо зашёл, но только одной ногой

  • @Novator_Progressive
    @Novator_Progressive 2 ชั่วโมงที่ผ่านมา

    0:57 Тут нет не чего удивительного. Значение False в базе своей соответствует числу ноль, True любому числу отличному от нуля. Именно поэтому в большинстве языков мы можем подавать чиста в if() и получать логичное поведение. В аппаратной разработке зачастую так и делают, используя числа за место True и False.
    3:10 Тут тоже нет не чего удивительного. И компилятор сам значение неинициализированной переменной не присваивает (во всяком случае не всегда). Видите ли, каждая переменная располагается по определённому адресу, по которому уже могло быть какое-то значение, которое осталось от использование другими программами. Именно поэтому неинициализированные переменные чему-то равняются. По этой же причине при выходе за пределы массива мы получаем случайные (или неслучайные) значения.

  • @two-spikes
    @two-spikes 7 ชั่วโมงที่ผ่านมา

    я посмотрел, не удаляй, пусть другие досмотрят

  • @mop157
    @mop157 4 ชั่วโมงที่ผ่านมา

    Ну так в джава скрипте и поэтому и есть === а надчет == то я наоборот этим пользуюсь к примеру в ситуации когда нужно проверить на 3 значения:
    1 undefined
    2 null
    3 0
    Переменную которую мы получаем может быть undefined, null, 0, number (больше 0) и поэтому просто к перемене использую || и ставлю значение по умолчанию тоесть 1, и всё так что не баг а фича)
    Пример херня, конечно но удалять лень)

  • @Tkmtermocomplex
    @Tkmtermocomplex 10 ชั่วโมงที่ผ่านมา

    Ну да у всех у всех компилируемый в языках такие проблемы они не сообщают там мелочи всякие вот мелочей ошибки поэтому придётся попотеть
    Это не касается не только си и си плюс плюс это касается и даже java тоже такие проблемы

  • @Tkmtermocomplex
    @Tkmtermocomplex 10 ชั่วโมงที่ผ่านมา

    JavaScript может даже умножить строку на число ну например 5 х 1 пять будет строка и один будет число он выводит пять это очень странно почему он прибавляет друг другу разные типы данных кто понимает отвечайте мне

  • @ЭдгарЭдгар-с4л
    @ЭдгарЭдгар-с4л 8 ชั่วโมงที่ผ่านมา

    Эх сразу видно про многопоточку прям верхушечку коснулся, на деле если капнуть глубже, можно попасть в ад =)

    • @dushnila_official
      @dushnila_official  7 ชั่วโมงที่ผ่านมา

      Да, там можно было много чего рассказать, не стал усложнять 😅

  • @Tkmtermocomplex
    @Tkmtermocomplex 10 ชั่วโมงที่ผ่านมา

    А я думал что хороших компиляторов такие ошибки не бывает

    • @Ryazanec13
      @Ryazanec13 9 ชั่วโมงที่ผ่านมา

      у gcc ловил ошибку, писал прошивку под одну железку, и одна функция ни как не хотела работать правильно, хотя я раз 20 перепроверил алгоритм, но не работает и всё, плюнул, решил, что потом или разберусь или перепишу и начал писать вывод данных на дисплей, забив на функционал, и вообще не трогал странно ведущий себя кусок кода и при проверки дисплея оказалось, что кусок кода заработал как надо! я обрадовался, и продолжил писать дальше, и при разных компилляциях этот кусок кода то работал то не работал! мистика. в итоге проблему решил, перенастроив мейк файл, что бы прошивка компилировалась не на максимальную скорость выполнения, а на минимальный обьём занимаемого флеша - и всё! больше этот кусок кода ни разу не глючил, что бы я в прошивке не менял.

  • @alexmb2122
    @alexmb2122 8 ชั่วโมงที่ผ่านมา

    Тип данных decimal? Может проблема в «новых» программистах? Раньше задавали типы данных вручную, сейчас все рассчитывают на компилятор 🤦🏼‍♂️

  • @ejlite5900
    @ejlite5900 6 ชั่วโมงที่ผ่านมา

    14:48 Про того самого людишку из NASA

  • @alangalifianakis
    @alangalifianakis 10 ชั่วโมงที่ผ่านมา

    Новый способ заканчивать видосы на самом деле

  • @Илья-п4м3щ
    @Илья-п4м3щ 9 ชั่วโมงที่ผ่านมา

    1:18 не "типы данных к значениям", а наоборот...

  • @Kotik_Boba-
    @Kotik_Boba- 7 ชั่วโมงที่ผ่านมา

    00:00 Тоже сурдина и семихатова смотришь?

  • @vasilsuarez5075
    @vasilsuarez5075 10 ชั่วโมงที่ผ่านมา

    ты топчик, мативируешь (я учу руский, извините за ошибки)

  • @mrrl37
    @mrrl37 11 ชั่วโมงที่ผ่านมา

    Он выучил программирование что бы душить

    • @Angelochek-v8o
      @Angelochek-v8o 10 ชั่วโมงที่ผ่านมา

      А ты здесь ради добровольного удушения?

    • @mrrl37
      @mrrl37 9 ชั่วโมงที่ผ่านมา

      @@Angelochek-v8o Да.

  • @p1nkflow
    @p1nkflow 10 ชั่วโมงที่ผ่านมา +5

    "Необъяснимые странности" - 15 минут посредственно объясняет их

    • @dushnila_official
      @dushnila_official  10 ชั่วโมงที่ผ่านมา

      В смысле посредственно

  • @semga_moment_i
    @semga_moment_i 8 ชั่วโมงที่ผ่านมา

    Я нечего не понял

  • @Tkmtermocomplex
    @Tkmtermocomplex 9 ชั่วโมงที่ผ่านมา

    Print(0.1+0.2==0.3) //true

    • @dushnila_official
      @dushnila_official  9 ชั่วโมงที่ผ่านมา +1

      На питоне онлайн компилятор выдает false

    • @koshkodrblg5653
      @koshkodrblg5653 4 ชั่วโมงที่ผ่านมา

      @@dushnila_official потому что float != decimal типу данных, во флоуте по-другому числа записываются

    • @Tkmtermocomplex
      @Tkmtermocomplex 8 นาทีที่ผ่านมา

      @@dushnila_official странно как-то

  • @Luciapeters-e8y
    @Luciapeters-e8y 11 ชั่วโมงที่ผ่านมา

    I want to start trading cryptocurrencies but I don't know how to start. I want someone that will coach me to avoid loosing my capital.

    • @builtempire-e9s
      @builtempire-e9s 11 ชั่วโมงที่ผ่านมา

      start from dropping this shit thoughts mf

  • @gl8855-k4r
    @gl8855-k4r 11 ชั่วโมงที่ผ่านมา

    норм

  • @KEVBELA
    @KEVBELA 11 ชั่วโมงที่ผ่านมา

    Первый❤

  • @Manux11111
    @Manux11111 11 ชั่วโมงที่ผ่านมา +1

    первый

  • @snslshrt9190
    @snslshrt9190 10 ชั่วโมงที่ผ่านมา

    двадцатый , удаляй канал

  • @kvas377
    @kvas377 11 ชั่วโมงที่ผ่านมา

    первый

    • @Angelochek-v8o
      @Angelochek-v8o 10 ชั่วโมงที่ผ่านมา

      Не хорош