以下を実行した後は必ず b == p は成り立つでしょうか?

Type* p = malloc( sizeof( Type ) );
size_t a = (size_t)p;
Type* b = (Type*)a;