Сообщение Re: Безопасно ли присваивать один указатель другому?.. от 22.03.2018 19:11
Изменено 22.03.2018 19:14 Alexander G
Re: Безопасно ли присваивать один указатель другому?..
Здравствуйте, okman, Вы писали:
O>Или такое присваивание всегда безопасно, даже если сами указатели содержат null или "мусор"?
Я бы не стал присваивать неинициализированный мусор, потому что инструменты статического анализа кода имеют право дважды ругнуться.
Во-первых, мы используем значение неинициализированной переменной.
Во-вторых, мы же потом не разыменовываем целевой указатель, так? Вот и неиспользованное присвоенное значение.
Что до легальности с точки зрения С/С++.
Есть такая штука, как signaling NaN.
Она может привести к тому, что следующее присвоение упадёт:
Если под это есть "законодательная база" в С/С++, то, возможно, она применима и к указателям.
O>Или такое присваивание всегда безопасно, даже если сами указатели содержат null или "мусор"?
Я бы не стал присваивать неинициализированный мусор, потому что инструменты статического анализа кода имеют право дважды ругнуться.
Во-первых, мы используем значение неинициализированной переменной.
Во-вторых, мы же потом не разыменовываем целевой указатель, так? Вот и неиспользованное присвоенное значение.
Что до легальности с точки зрения С/С++.
Есть такая штука, как signaling NaN.
Она может привести к тому, что следующее присвоение упадёт:
float f1;
float f2;
f2 = f2;
Если под это есть "законодательная база" в С/С++, то, возможно, она применима и к указателям.
Re: Безопасно ли присваивать один указатель другому?..
Здравствуйте, okman, Вы писали:
O>Или такое присваивание всегда безопасно, даже если сами указатели содержат null или "мусор"?
Я бы не стал присваивать неинициализированный мусор, потому что инструменты статического анализа кода имеют право дважды ругнуться.
Во-первых, мы используем значение неинициализированной переменной.
Во-вторых, мы же потом не разыменовываем целевой указатель, так? Вот и неиспользованное присвоенное значение.
Что до легальности с точки зрения С/С++.
Есть такая штука, как signaling NaN.
Она может привести к тому, что следующее присвоение упадёт:
Если под это есть "законодательная база" в С/С++, то, возможно, она применима и к указателям.
O>Или такое присваивание всегда безопасно, даже если сами указатели содержат null или "мусор"?
Я бы не стал присваивать неинициализированный мусор, потому что инструменты статического анализа кода имеют право дважды ругнуться.
Во-первых, мы используем значение неинициализированной переменной.
Во-вторых, мы же потом не разыменовываем целевой указатель, так? Вот и неиспользованное присвоенное значение.
Что до легальности с точки зрения С/С++.
Есть такая штука, как signaling NaN.
Она может привести к тому, что следующее присвоение упадёт:
float f1;
float f2;
f2 = f1;
Если под это есть "законодательная база" в С/С++, то, возможно, она применима и к указателям.