Для программы, которую я пишу, мне нужно создать массив с заданным пользователем размером, а также случайными значениями от -15 до 15. Поэтому я использую srand вместе с динамическим преобразованием массива. Это мой полный код ниже:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
//initialize variables
double minValue;
double maxValue;
double firstQuartile;
double thirdQuartile;
double skewness;
int size;
std::cout << "Please enter the size of the data set: "; //get data set size from user
std::cin >> size;
int* dataSet = new int[size];
cout << endl << "These are the randomly generated values: ";
srand(static_cast<unsigned int>(time(NULL)));
int i = size;
for (int x = 0; x < i; x++) //generate random numbers
{
dataSet[i] = (rand() % 31) - 15;
cout << dataSet[i] << " ";
}
}
Хотя он все еще компилируется, мне нужно, чтобы он делал это без ошибок, и раздел, который я выделил ниже, вызывает две ошибки, которые я не знаю, как исправить.
int i = size;
for (int x = 0; x < i; x++) //generate random numbers
{
dataSet[i] = (rand() % 31) - 15;
cout << dataSet[i] << " ";
}
C6386 Переполнение буфера при записи в 'dataSet': доступный для записи размер равен 'size*4' байтам, но может быть записано 'i' байтов.
А ТАКЖЕ
C6385 Чтение недопустимых данных из 'dataSet': читаемый размер равен 'size*4' байтам, но можно прочитать 'i' байтов.
delete
ее. - person Thomas Matthews   schedule 14.02.2020