Виталий Роденбергер
Виталий Роденбергер | Репутация: 97 (Без статуса) 10 мая 2010 в 23:40
Как записать в функцию, с помощью генератора случайных чисел, массив и увеличить его на 5 (в С++)?
Теги:
.net, , actionscript, ada, ado.net ...еще >>
Виктор Феоктистов
Виктор Феоктистов | Репутация: 117 (Кандидат) 11 мая 2010 в 11:16

Вам точно нужно сначала сгенерировать а потом увеличить, а не наоборот? Впрочем ладно. Если массив одномерный, то сойдет такой алгоритм:
const int N = 10;
int *A = new
int[N];
int i;
for(i=0; i<N; i++)
A[i] = rand() % 100 - 50; // генерация
случайных чисел от -50 до 49

//И увеличение размера
A = (int*)realloc(A,
N+5);
// или можно также создать новый массив размером
N+5 и
//скопировать в него все элементы A, уничтожить A и
присвоить
//переменной А указатель на новый массив

Александр Петров
Александр Петров | Репутация: 409 (Кандидат) 12 мая 2010 в 04:05

В функцию нельзя ничего записать! Функцию можно вызвать, в функцию можно передать значения, но записать - нет.
Что значит "увеличить на 5"? Увеличить размер массива? Увеличить значения этого массива?
Отвечать на некорректно заданный вопрос нет никакого желания, посему лишь поправлю предыдущего отвечальщика: использование realloc в паре с new - некорректно!

Виктор Феоктистов
Виктор Феоктистов | Репутация: 117 (Кандидат) 13 мая 2010 в 08:18

Да, ошибся. Либо malloc и realloc, либо new и {new новый, скопировать из старого в новый, delete старый и присвоить указатель на новый массив вместо старого}