Форум программистов, компьютерный форум CyberForum.ru

Выделение памяти для массива через функцию и использование этого массива - C++

Восстановить пароль Регистрация
 
igorperzh
3 / 3 / 0
Регистрация: 30.05.2011
Сообщений: 41
30.05.2011, 23:15     Выделение памяти для массива через функцию и использование этого массива #1
Я определяю свою структуру, создаю динамический массив, где будут храниться элементы этой структуры. Есть функция которая выделяет память, потом создает элемент структуры, считывает данные с клавиатуры и добавляет в массив этот элемент. Затем я хочу использовать этот массив в другой функции. Но при обращении к массиву прога выдает ошибку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
using namespace std;
struct sStr
{
    int iNumber;
};
void uvel(sStr *arr);
void print(sStr *arr);
int main()
{
    sStr *arr = 0;
    uvel(arr);
    print(arr);
    return 0;
}
 
void uvel(sStr *arr)
{
    arr = new sStr[1];
    sStr Quick;
    cin >> Quick.iNumber;
    arr[0] = Quick;
}
void print(sStr *arr)
{
    sStr Quick2;
    Quick2 = arr[1];
    cout << Quick2.iNumber;
}
Подскажите как ее исправить.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 23:15     Выделение памяти для массива через функцию и использование этого массива
Посмотрите здесь:

C++ динамическое выделение памяти для массива.
Выделение динамической памяти для двумерного массива. C++
C++ Динамическое выделение памяти для двумерного массива
Выделение памяти для массива C++
Выделение памяти для массива C++
Выделение памяти для массива C++
C++ Выделение памяти для непрямоугольного массива
C++ Выделение динамической памяти для массива точек

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
31.05.2011, 00:14     Выделение памяти для массива через функцию и использование этого массива #2
К изучению
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
struct sStr
{
        int iNumber;
};
void uvel(sStr**arr);
int main()
{
        sStr *arr= 0;
        uvel(&arr);
 
        printf ("arr[0].iNumber= %d\n", arr[0].iNumber);
        getchar ();
        getchar ();
        return 0;
}
 
void uvel(sStr **arr)
{
        *arr = new sStr[1];
        cin >> (*arr)[0].iNumber;
}
Добавлено через 4 минуты
А проще так можно сделать: выдели память под структуру в main и передай указатель на структуру в функцию, а дальше работай с ним по плану.
Yandex
Объявления
31.05.2011, 00:14     Выделение памяти для массива через функцию и использование этого массива
Ответ Создать тему
Опции темы

Текущее время: 22:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru