目前 Visual C++ 附带运行时,其中malloc()
用__declspec( restrict )
.
MSDN 告诉编译器,这个修饰声明返回的指针malloc()
不能被任何其他指针所别名。好的,两个后续调用malloc()
确实返回了不同的指针。但是如果我打电话会发生什么
void* memory1 = malloc( 10 );
free( memory1 );
void* memory2 = malloc( 10 );
//here memory1 may be equal to memory2
在这种情况下,两个指针可以指向同一个位置。这与不能被任何其他指针含义所别名有何关联__declspec( restrict )
?