(c ++) сохранение случайного значения из main в массив функций

0

так что это то, что я предполагаю сделать, но это вызвало у меня путаницу, это то, что я получил до сих пор, любая помощь будет оценена :)

Напишите функцию, которая динамически выделяет массив целых чисел. Функция должна принимать целочисленный аргумент, указывающий количество элементов, которые нужно выделить, и должен возвращать указатель на массив. Затем напишите драйвер в главной функции, которая генерирует случайное число (что-то не слишком большое), вызывает функцию и проверяет доступ, сохраняя значение для первого элемента и отображая содержимое этого элемента.

отредактированный код, который он запускает, но я чувствую, что я не использовал свою функцию вообще.

#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;
}
  • 1
    Вы почти у цели ... для saving a value to the first element вам нужен array[0] = random; , Нет необходимости вызывать MyArray(size); дважды или ... в первый раз память просочилась в пустую цель.
  • 1
    Добро пожаловать в StackOverflow! Попытайтесь объяснить, в чем ваша проблема: почему вы не можете выполнить описанную задачу?
Показать ещё 3 комментария
Теги:
arrays
pointers
function

1 ответ

2
Лучший ответ

Я считаю, что вы пытаетесь сделать что-то вроде этого:

#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;
}

Примечание. Я просто догадываюсь, что это то, что вы, вероятно, ищете.

  • 0
    Спасибо за помощь! теперь все работает :)
  • 1
    @tonyD Спасибо за помощь! теперь все работает :)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню