realloc 参考说:
该函数可以将内存块移动到新位置,在这种情况下,将返回新位置。
这是否意味着如果我这样做:
void foo() {
void* ptr = malloc( 1024 );
unsigned char* cptr = ( unsigned char* )ptr+256;
ptr = realloc( ptr, 4096 );
}
如果 realloc 移动块,那么 cptr 可能会变得无效?
如果是,那么 realloc 是否以任何方式发出信号,它会移动块,以便我可以做一些事情来防止 cptr 变得无效?