0xDEADBEEF эквивалент для 64-битной разработки?

Для разработки C ++ для 32-битных систем (будь то Linux,Mac OS или же Окна,PowerPC или x86) я инициализировал указатели, которые в противном случае будет неопределенным (например, они не могут сразу получить правильное значение) вроде так:

int *pInt = reinterpret_cast<int *>(0xDEADBEEF);

(Чтобы сохранить набор текста и существоDRY правая сторона обычно быть в константе, например BAD_PTR.)

Если pInt разыменовывается, прежде чем он получит правильное значение, то в большинстве систем происходит сбой (вместо сбой гораздо позже, когда некоторая память перезаписывается или собирается в очень длинный цикл).

Конечно, поведение зависит от основных аппаратное обеспечение (получение 4-байтового целого числа из нечетного адрес 0xDEADBEEF от пользовательского процесса может быть идеально действителен), но сбой был на 100% надежным для всех системы, которые я разработал до сих пор (Mac OS68xxxMac OS PowerPC, Linux Redhat Pentium, Windows GUI Pentium, Windows консоль Pentium). Например, на PowerPC это незаконно (шина ошибка), чтобы получить 4-байтовое целое число с нечетного адреса.

Что хорошего в этом для 64-битных систем?

Ответы на вопрос(10)

Ваш ответ на вопрос