Ссылка realloc говорит:
Функция может перемещать блок памяти на новое место, и в этом случае новое местоположение возвращается.
Означает ли это, что если я это сделаю:
void foo() {
void* ptr = malloc( 1024 );
unsigned char* cptr = ( unsigned char* )ptr+256;
ptr = realloc( ptr, 4096 );
}
то cptr может стать недействительным, если realloc перемещает блок?
Если да, то каким-либо образом передается сигнал realloc, чтобы он перемещал блок, чтобы я мог что-то сделать, чтобы предотвратить cptr недействительным?