靜態轉換偽造的 void 值

如果將 void*值轉換為指向物件型別的指標 T*,但未正確對齊 T,則未指定結果指標值。例:

// Suppose that alignof(int) is 4
int x = 42;
void* p1 = &x;
// Do some pointer arithmetic...
void* p2 = static_cast<char*>(p1) + 2;
int* p3 = static_cast<int*>(p2);

p3 的值未指定,因為 p2 不能指向 int 型別的物件; 它的值不是正確對齊的地址。