так что это то, что я предполагаю сделать, но это вызвало у меня путаницу, это то, что я получил до сих пор, любая помощь будет оценена :)
Напишите функцию, которая динамически выделяет массив целых чисел. Функция должна принимать целочисленный аргумент, указывающий количество элементов, которые нужно выделить, и должен возвращать указатель на массив. Затем напишите драйвер в главной функции, которая генерирует случайное число (что-то не слишком большое), вызывает функцию и проверяет доступ, сохраняя значение для первого элемента и отображая содержимое этого элемента.
отредактированный код, который он запускает, но я чувствую, что я не использовал свою функцию вообще.
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int *MyArray(int);
int main()
{
srand(time(0));
int random = rand() % 5 + 1;
const int size = 5;
int array[size];
MyArray(size);
array[0] = random;
cout << array[0] << endl;
}
int *MyArray(int numOfElements)
{
int *array;
array = new int[numOfElements];
return array;
}
редактируемый код
int main()
{
srand(time(0));
int random = rand() % 5 + 1;
const int size = 5;
int* array = MyArray(size);
array[0] = random;
cout << array[0] << endl;
delete [] array;
}
Я считаю, что вы пытаетесь сделать что-то вроде этого:
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
int *MyArray(int);
int main()
{
srand(time(0));
int random = rand() % 5 + 1;
int *array = MyArray(random); //! store the pointer of dynamically allocated memory and use it.
array[0] = random;
cout << array[0] << endl;
delete [] array; //! To avoid memory leak
}
int *MyArray(int numOfElements)
{
int *array = new int[numOfElements];
return array;
}
Примечание. Я просто догадываюсь, что это то, что вы, вероятно, ищете.
saving a value to the first element
вам нуженarray[0] = random;
, Нет необходимости вызыватьMyArray(size);
дважды или ... в первый раз память просочилась в пустую цель.