Вы можете использовать fill
, но вы должны помнить, что он принимает пару итераторов. Указатель на элементы массива уже является итератором массива. Для его передачи не нужно брать адрес итератора, поэтому ваш первый аргумент неверен. Более правильная форма будет
std::fill(buffer, buffer + bufferSize, 0);
или
std::fill_n(buffer, bufferSize, 0);
В качестве альтернативы, вы можете просто обнулить инициализацию массива в самом новом выражении
char* buffer = new char[bufferSize] {} ;
// ^ - initializer, for char this will zero out the array.