Из того, что написано здесь, new выделяет в свободном хранилище, а malloc использует кучу, и два термина часто означают одно и то же.
Из того, что написано здесь, realloc может переместить блок памяти в новое место. Если свободное хранилище и куча - это два разных пространства памяти, значит ли это любая проблема?
В частности, я хотел бы знать, можно ли использовать
int* data = new int[3];
// ...
int* mydata = (int*)realloc(data,6*sizeof(int));
Если нет, есть ли другой способ realloc памяти, выделенной с помощью new безопасно? Я мог бы выделить новую область и memcpy содержимое, но из того, что я понимаю, realloc может использовать ту же область, если это возможно.