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

Указатель на массив структур - C++

Восстановить пароль Регистрация
 
FrolBrol
 Аватар для FrolBrol
14 / 14 / 2
Регистрация: 02.01.2012
Сообщений: 73
06.11.2012, 19:26     Указатель на массив структур #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
struct STUDENT{ string name; int group; int point;};
//
//
//
 
 
STUDENT* ReedFile(char *filename){  //ругается, что надо заменить STUDENT* на int *
                                ifstream File;
                                File.open(filename);
                                if (!File.is_open() ) cout<<"Error opening";
                                else {
                                        STUDENT *ARR_STUDENT=new STUDENT; 
                                        int i=0;
                                        while (!File.eof()){ 
                                                                File>>ARR_STUDENT[i].name;
                                                                File>>ARR_STUDENT[i].group;
                                                                File>>ARR_STUDENT[i].point;
                                                                i++;
                                                                N++;
                                                                }
                                        }
                                File.close();
                                return ARR_STUDENT; //'ARR_STUDENT' : undeclared identifier
                                }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 19:26     Указатель на массив структур
Посмотрите здесь:

C++ указатель масива структур из структуры
Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. C++
указатель на массив структур C++
C++ Создать указатель на массив структур ZODIAK.
C++ Блочная сортировка структур (Отсортировать массив структур по фамилии)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
06.11.2012, 19:30     Указатель на массив структур #2
объявление
C++
1
STUDENT *ARR_STUDENT
не пробовали выносить за пределы условия?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
STUDENT* ReedFile(char *filename){  //ругается, что надо заменить STUDENT* на int *
                                ifstream File;
                                STUDENT *ARR_STUDENT;
                                File.open(filename);
                                if (!File.is_open() ) cout<<"Error opening";
                                else {
                                        ARR_STUDENT=new STUDENT; 
                                        int i=0;
                                        while (!File.eof()){ 
                                                                File>>ARR_STUDENT[i].name;
                                                                File>>ARR_STUDENT[i].group;
                                                                File>>ARR_STUDENT[i].point;
                                                                i++;
                                                                N++;
                                                                }
                                        }
                                File.close();
                                return ARR_STUDENT; //'ARR_STUDENT' : undeclared identifier
                                }
может поможет.
FrolBrol
 Аватар для FrolBrol
14 / 14 / 2
Регистрация: 02.01.2012
Сообщений: 73
06.11.2012, 19:39  [ТС]     Указатель на массив структур #3
где ретурн помогло.
осталась верхняя строчка

C
1
STUDENT* ReedFile(char *filename){ //error C2556: 'STUDENT *ReedFile(char *)' : overloaded function differs only by return type from 'int *ReedFile(char *)'
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
06.11.2012, 19:47     Указатель на массив структур #4
У Вас где-то есть функция с таким же именем и параметрами? Отличаются только возвращаемыми значениями, да?
FrolBrol
 Аватар для FrolBrol
14 / 14 / 2
Регистрация: 02.01.2012
Сообщений: 73
06.11.2012, 19:53  [ТС]     Указатель на массив структур #5
нет. У меня только вот это одна функция.

вот такая штука работает. По идее одно и тоже
C
1
2
3
4
5
int* F1(){
                int *MAS= new int[10];
                for (int i=0; i<10; i++) cin>>MAS[i];
                return MAS;
                }
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
06.11.2012, 23:49     Указатель на массив структур #6
Цитата Сообщение от FrolBrol Посмотреть сообщение
осталась верхняя строчка
Вы уверены, что у Вас нет прототипа функции
C++
1
int * ReedFile(char *filename)
Yandex
Объявления
06.11.2012, 23:49     Указатель на массив структур
Ответ Создать тему
Опции темы

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