- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
char *SomeGlobalPointer {};
void foo()
{
SomeGlobalPointer = new char[1024];
}
int main()
{
foo();
if (!SomeGlobalPointer)
{
delete[] SomeGlobalPointer;
}
return 0;
}
CEHT9I6PbCKuu_nemyx 13.09.2023 13:19 # 0
guest6 13.09.2023 13:44 # 0
Вызывает подозрение строка двенадцать
CEHT9I6PbCKuu_nemyx 13.09.2023 14:28 # 0
Desktop 13.09.2023 14:31 # 0
CEHT9I6PbCKuu_nemyx 13.09.2023 14:46 # 0
Desktop 13.09.2023 15:00 # 0
delete[] на 0 это ж краш?
CEHT9I6PbCKuu_nemyx 13.09.2023 15:06 # 0
If expression evaluates to a null pointer value, no destructors are called, and the deallocation function may or may not be called (it's unspecified), but the default deallocation functions are guaranteed to do nothing when passed a null pointer.
https://en.cppreference.com/w/cpp/language/delete
Т. е. зависит от типа. Встроенные деаллокаторы обещают с нулём ничего не делать.
Desktop 13.09.2023 15:07 # 0
guest6 13.09.2023 15:52 # +2
Алсо, тут vlaue инициализатор "{}" который явно закажет туда nullptr
CEHT9I6PbCKuu_nemyx 13.09.2023 19:00 # 0
j123123 13.09.2023 19:12 # 0
https://govnokod.ru/24560
Насчет крестоговна - не уверен.