Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
igorperzh
3 / 3 / 1
Регистрация: 30.05.2011
Сообщений: 41
#1

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

30.05.2011, 23:15. Просмотров 524. Ответов 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;
}
Подскажите как ее исправить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 23:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выделение памяти для массива через функцию и использование этого массива (C++):

Выделение памяти для массива
Пишу такой код: int main() { int* arr1 = new int; } Всё норм. ...

Выделение памяти для массива
Вопроса похожего не нашел, в задаче требуется считать матрицу из текстового...

Выделение памяти для массива
верно ли выделил память для массива если нет поправьте, заранее спасибо) class...

Динамическое выделение памяти для массива
Кто может помочь решить задачу. Для заданного двумерного массива из n строк и...

Выделение памяти для непрямоугольного массива
Возник вопрос: У меня в любительской прожке. Для ускорения расчётов...

Выделение памяти для двумерного массива
Обьясните что означает double** A = new double*, A = new...

1
kravam
быдлокодер
1706 / 893 / 105
Регистрация: 04.06.2008
Сообщений: 5,524
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 и передай указатель на структуру в функцию, а дальше работай с ним по плану.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2011, 00:14
Привет! Вот еще темы с решениями:

Динамическое выделение памяти для массива
Не могу разобраться, почему программа вызывает точку остановы после выбора...

Динамическое выделение памяти для двумерного массива
нужна помощь вот тело программы, не могу сделать динамическое выделение памяти...

Выделение динамической памяти для двумерного массива.
#include &lt;iostream&gt; int main() { setlocale( LC_ALL,&quot;Russian&quot; ); int...

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


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

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

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