185 похожих чатов

Что делать-то с ним? Пойти посмотреть, валидные ли там данные

динамически? Это возможно сделать? Я не знаю 😔

12 ответов

22 просмотра

ну вплоть до подстановки проверок и вызовов абортов при компиляции

hazer_hazer- Автор вопроса
hazer_hazer
А как понять, что нужно паниковать?

c: *ptr; пойдёт в другой язык как: if (ptr == NULL) throw NULL_EXC; *ptr

hazer_hazer
А как понять, что нужно паниковать?

а если бы компилировать не из сишки, а из крестов, то можно жёстче: можно сделать умный компилятор, который будет детектить проверку на nullptr, и разрешать компилить, а если её не находит, то запрещать. Ссылок не будет касаться

underrated like a psychopath
а если бы компилировать не из сишки, а из крестов,...

Ещё можно добавить всякий dataflow анализ, чтобы не проверять повторно, если не нужно, но это дорого как в компиляции, так и в выполнении.

Konstantin Romanov
Ещё можно добавить всякий dataflow анализ, чтобы н...

можно просто кидать ошибку компиляции при подозрении ,что может быть разыменован NULL

Dark Hole
Но это же будет раст

нет, в расте ты ещё не можешь брать мутабельные ссылки

hazer_hazer- Автор вопроса
underrated like a psychopath
c: *ptr; пойдёт в другой язык как: if (ptr == NUL...

Так нулл-то понятное дело. Но может же прийти что угодно с любым лэйаутом. Как понять, что тебе подсунули то, что ты ожидал?

Алексей
Это не так

Это было бы не так, если бы borrow checker не выдавал false positive

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта