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

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

30.05.2011, 23:15. Показов 750. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2011, 23:15
Ответы с готовыми решениями:

Выделение памяти для массива через оператор new
Вопрос знатокам, объявляю глобальный статистический указатель static myStrucType* mas; надо для...

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

Выделение памяти для массива
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { int *dane; ...

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

1
быдлокодер
1721 / 908 / 106
Регистрация: 04.06.2008
Сообщений: 5,639
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2011, 00:14

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

Выделение памяти для массива
на вид все просто, а на деле что то не очень =( Выделить память для трехмерного массива а....

выделение памяти для массива
#include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; int main() { ...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru