Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
6 / 6 / 11
Регистрация: 28.05.2014
Сообщений: 52
1

Как правильно реализовать инициализацию массива функцией?

05.12.2015, 01:51. Показов 400. Ответов 1
Метки нет (Все метки)

Здравствуйте! Мне нужно что бы вся инициализация массива происходила в отдельной функции и что бы этот массив можно было в дальнейшем передавать в другие функции. Я решил сделать так.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 void initialize_array()
{
    cout << "Введите размер массива: ";
    int array_size;
    cin >> array_size;
    int myArray[array_size];
 
    if (array_size < 0) {
        cout << "Внимание! Вы ввели отрицательную размерность массива, что не допустимо!\n"
             << "Но мы предотвратили эту ошибку. Будьте внимательнее в следующий раз.\n";
        array_size = - array_size;
    }
 
    for (int i = 0; i < array_size; i++) {
        cout << "Введите " << i << " элемент массива: ";
        cin >> myArray[i];
    }
}
И , допустим , еще определена функция по записи этого массива в файл.
C
1
2
3
4
5
6
7
8
void write_array(int *myArray, int array_size)
{
    ofstream fout ("array.txt");
    for (int g = 0; g < array_size; g++) {
        fout << g << "->" << myArray[g] << "\n";
    }
    fout.close();
}
Я в main() вызываю initialize_array() и write_array(myArray,array_size) . Но компилятор говорит что myArray не определена. Так вот, как я думаю, функция initialize_array после своей работы должна возвратить указатель на массив, что бы его можно было бы использовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2015, 01:51
Ответы с готовыми решениями:

Включение, как правильно сделать инициализацию
Вот код: #ifndef WINE_H_ #define WINE_H_ #include &lt;iostream&gt; #include &lt;string&gt; #include...

Как правильно реализовать заполнение двумерного массива элементами
Здравствуйте! Имеется проблема такого рода: Имеется 5-6 классов, с базовым классом и 5-...

Найти объём куба функцией; реализовать ввод и вывод элементов массива в виде функций
1) Написать функцию для вычисления объема куба. Вычислить объем куба для заданных пользователем...

Как правильно пользоваться функцией strtok
Как правильно пользоваться етой ф-цией? Набросал код, надо пока разбить строку на слова(ф-ция int...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
1
38 / 1 / 0
Регистрация: 09.08.2012
Сообщений: 44
05.12.2015, 09:25 2
Потому что размер массива должен быть известен на стадии компиляции, а не задаваться в процессе выполнения.
Используй vector.
вместо вот этого int myArray[array_size];
будет что то вроде
vector<int> myArray;
myArray.resize(array_size);
так делать не рекомендуется конечно но в простейшем случае сойдет.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2015, 09:25

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как правильно работать с функцией window()?
Задача такая. Вывести в верхней части экрана небоольшой заголовок с менюшками. Затем прочитать файл...

Как правильно работать с функцией _getch() ?
Ребята, задача такова: Надо нарисовать фигурку в консоли. И дигать ,по консоли, фигурку...

Как правильно реализовать сортировку массива
Подскажите пожалуйста, как правильно реализовать сортировку? array.sort() using System; using...

Как разделить объявление массива контролов и его инициализацию конкретными компонентами
Всем здравствуйте. Такое объявление совмещённое с инициализацией успешно работает в конструкторе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.