Стандартный оператор new используется для выделения памяти под объекты определённого типа, а не для выделения произвольного количества байт. Если необходимо выделить именно определённое количество байт, можно воспользоваться конструкцией new char[]:
std::size_t numBytes = 100; // Необходимое количество байт
char* buffer = new char[numBytes]; // Выделение массива из 100 байт
В этом примере выделяется массив из 100 байт, а указатель buffer будет указывать на начало этой памяти.
Память, выделенная через new char[], обязательно должна быть освобождена с использованием delete[], вот так:
delete[] buffer; // Освобождение памяти
Важно не забывать в какой форме была выделена память и использовать соответствующий оператор высвобождения, иначе будет утечка памяти, так как при удалении без квадратных скобок [], весь массив не удалится, и такое высвобождение вызовет неопределенное поведение программы (undefined behavior).