Создать массив в функции, используя параметр

77
05 мая 2021, 08:10
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. Вопрос: как создать массив в функции, используя для его размера параметр функции?

Answer 1

Оператор new выделит для массива память и вернет указатель на этот выделенный для вас участок памяти. Вы же пытаетесь присвоить указатель (int *) массиву (int []). Решение — сделать переменную output указателем:

int *output = new int[n];
READ ALSO
Segmentation Fault при завершении скрипта на lua

Segmentation Fault при завершении скрипта на lua

Написал небольшой модуль для lua51 (в качестве эксперимента) на с++ (понятное дело функции экспортированы в C)

85
Запись в файл для всех файлов проекта

Запись в файл для всех файлов проекта

Друзья, помогите с задачейКак сделать так, чтобы запись в файл производилась из всех файлов проекта(например

85
Как сделать добавление товара в корзину!

Как сделать добавление товара в корзину!

Есть у меня кнопка на ней ссылка которая передаёт значения!

91
Как обрезать часть ссылки?

Как обрезать часть ссылки?

Есть например у меня ссылка!

197