void countSort(int arr[], int n, int exp)
{
int* output[] = new int[n] ; // output array
int i, count[10] = { 0 };
В данном примере при попытке создания массива output, возникает ошибка под new: «для агрегатного объекта требуется инициализация...». Пробовал делать просто int output [n];, но VS не позволяет так сделать (возможно, отсутствует поддержка VLA).
Когда делаю такое на C, проблема та же, только после компиляции «ругается» на malloc. Вопрос: как создать массив в функции, используя для его размера параметр функции?
Оператор new выделит для массива память и вернет указатель на этот выделенный для вас участок памяти. Вы же пытаетесь присвоить указатель (int *) массиву (int []). Решение — сделать переменную output указателем:
int *output = new int[n];
Продвижение своими сайтами как стратегия роста и независимости