Size: a a a

2020 January 09

AZ

Alex Zhukovsky in rust_offtopic
надо очищать объекты на которые они указывают
источник

AK

Alexander Krivitskiy in rust_offtopic
Кстати, там раст в некоторых кейсах кондишонал дропа пушает word с флажками, дропать значение или нет. Так что не такой уж и статик гц
источник

AZ

Alex Zhukovsky in rust_offtopic
соответственно удаление объекта на который указывает нулл это noop
источник

AZ

Alex Zhukovsky in rust_offtopic
все сходится
источник

Ct

Casual tears in rust_offtopic
Roman Proskuryakov
висячим указатель становится не в момент создания, а в момент использования
Интересно.

T* a = new T;
T* b = a;
delete a;

Вот тут b т.е. не висячий?
источник

P

Pavel in rust_offtopic
Roman Proskuryakov
висячим указатель становится не в момент создания, а в момент использования
ну, точнее, он может стать висячим когда угодно, но можно всегда найти пограничный момент, когда он "точно ещё не висячий" и "уже мб висячий"
источник

AZ

Alex Zhukovsky in rust_offtopic
Casual tears
Интересно.

T* a = new T;
T* b = a;
delete a;

Вот тут b т.е. не висячий?
я не знаю семантику плюсов чтобы ответить
источник

RP

Roman Proskuryakov in rust_offtopic
Casual tears
Интересно.

T* a = new T;
T* b = a;
delete a;

Вот тут b т.е. не висячий?
если у тебя будет

delete a;
}


то b не будет висячим
источник

AK

Alexander Krivitskiy in rust_offtopic
Casual tears
Интересно.

T* a = new T;
T* b = a;
delete a;

Вот тут b т.е. не висячий?
Ну он висит, но это не имеет значения если его не разименовать
источник

RP

Roman Proskuryakov in rust_offtopic
а если ты дернешь b после delete a, то будет разадресация висячего
источник

Ct

Casual tears in rust_offtopic
Roman Proskuryakov
если у тебя будет

delete a;
}


то b не будет висячим
Интересные у вас определения конечно, ну окей. В таком случае вы может и правы.
источник

P

Pavel in rust_offtopic
Alexander Krivitskiy
Кстати, там раст в некоторых кейсах кондишонал дропа пушает word с флажками, дропать значение или нет. Так что не такой уж и статик гц
а есть больше инфы по этому? интересно на сам код, который это тригерит посмотреть
источник

AK

Alexander Krivitskiy in rust_offtopic
Pavel
а есть больше инфы по этому? интересно на сам код, который это тригерит посмотреть
Где-то в номиконе было. Drop check глава, вроде. Мне не удобно с телефона искать
источник

Ct

Casual tears in rust_offtopic
Roman Proskuryakov
если у тебя будет

delete a;
}


то b не будет висячим
Я разве что могу только ткнуть в википедию и развести руками
>  Dangling pointers arise during object destruction, when an object that has an incoming reference is deleted or deallocated, without modifying the value of the pointer, so that the pointer still points to the memory location of the deallocated memory
источник

Ct

Casual tears in rust_offtopic
Pavel
а есть больше инфы по этому? интересно на сам код, который это тригерит посмотреть
гугли по словам "rust drop flags"
источник

Ct

Casual tears in rust_offtopic
Casual tears
Я разве что могу только ткнуть в википедию и развести руками
>  Dangling pointers arise during object destruction, when an object that has an incoming reference is deleted or deallocated, without modifying the value of the pointer, so that the pointer still points to the memory location of the deallocated memory
Это отсюда https://en.wikipedia.org/wiki/Dangling_pointer
если не очевидно
источник

P

Pavel in rust_offtopic
Casual tears
Я разве что могу только ткнуть в википедию и развести руками
>  Dangling pointers arise during object destruction, when an object that has an incoming reference is deleted or deallocated, without modifying the value of the pointer, so that the pointer still points to the memory location of the deallocated memory
значит в плюсах точно нет гц, на объект ссылка есть, а он удаляется, собственно, это мы уже и так выяснили
источник

Ct

Casual tears in rust_offtopic
Pavel
значит в плюсах точно нет гц, на объект ссылка есть, а он удаляется, собственно, это мы уже и так выяснили
Но и в расте получается тоже нету, что я и хотел доказать ¯\_(ツ)_/¯
источник

RP

Roman Proskuryakov in rust_offtopic
Casual tears
Я разве что могу только ткнуть в википедию и развести руками
>  Dangling pointers arise during object destruction, when an object that has an incoming reference is deleted or deallocated, without modifying the value of the pointer, so that the pointer still points to the memory location of the deallocated memory
окей
источник

P

Pavel in rust_offtopic
Casual tears
Но и в расте получается тоже нету, что я и хотел доказать ¯\_(ツ)_/¯
но в расте ты не можешь использовать висячий указатель, даже если синтаксически он есть
источник