靜態轉換偽造的 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
型別的物件; 它的值不是正確對齊的地址。