количество байт? Я думал что malloc() это старая реализация используемая только в си, хотелось бы понять в принципиальная разница
Ну new возвращает тип (какой именно конструктор он вызывает зависит от тебя) malloc да, это из сей ещё, но в плюсах используется тоже довольно часто (чаще чем никогда) И malloc ничего не знает о типе данных которые тебе нужны, ты просто даёшь ему на вход количество байт, которое тебе нужно и получаешь адрес (void*) на свежевыделенную память. А дальше ты с ним делаешь уже что хочешь. Реализация изнутри зависит от платформы, как уже подметили выше. Иными словами malloc тупо лезет в апи операционки и вызывает там аналогичную функцию.
Принципиальная разница в том, что malloc это функция CRT языка C, а new часть языка c++. malloc только выделяет память, а new создаёт новый объект языка. (объект не в смысле ООП)
Обсуждают сегодня