25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
1

Как вернуть массив структур (слабонервным не смотреть)

27.05.2015, 23:00. Показов 2434. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В продолжении темы любви со структурами.
Часть функций потырена с последней темы (чтоб лишний раз сюда не копипастить).

Добрый вечер, получилось так, что один кусок кода, а точнее:

этот

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
totalLines = linesInFile('c');
        
        Creatures** creatureArray = new Creatures*[totalLines]; //Создается двухмерный массив данных структуры
        int number = 0;
        creatures.open("Creatures.dat", ios::in);
        if (creatures.is_open())
        {
            creatures.seekg(ios::beg);
            while (!creatures.eof())
            {
                getline(creatures, line);
                if (line != "")
                {
                    creatureArray[number++] = parseStringC(line); //Функция из темы любви
                }
            }
            creatures.close();
        }


Хочется запихнуть этот кусок в отдельную функцию, чтоб массив создавался лишь по ее вызову,
пробовал:

так

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
Creatures* createArrayC()
{
    int totalLines;
    totalLines = linesInFile('c');
    Creatures** creatureArray = new Creatures*[totalLines];
    string line;
    int number = 0;
    fstream creatures;
    creatures.open("Creatures.dat", ios::in);
 
    if (creatures.is_open())
    {
        creatures.seekg(ios::beg);
        while (!creatures.eof())
        {
            getline(creatures, line);
            if (line != "")
            {
                creatureArray[number++] = parseStringC(line);
            }
        }
        creatures.close();
    }
 
    return *creatureArray;
}

но дельного ничего не вышло или просто не правильно присваиваю, пытаясь вместо первого сделать что-то типа:
такого

C++
1
2
Creatures** creatureArray = new Creatures*[totalLines];
creatureArray = createArrayC();

Может кто сталкивался с таким или знает что покурить? >w< Всем заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2015, 23:00
Ответы с готовыми решениями:

Как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю?
Ребята подскажите как объявить динамический массив структур, и как выглядит обращение к полям...

Как вернуть массив в данной функции ? Или как записать массив в переменную ?
#pragma once #include &quot;stdafx.h&quot; const int S = 49; int bin2; int decbin(int a, int...

Составить массив структур состоящий из имени и цены,по введенному имени изменить цену,вывести обновленный массив структур
составить массив структур состоящий из имени и цены,по введенному имени изменить цену,вывести...

Почему функция не может вернуть массив, но может вернуть структуру содержащий массив?
Почему функция не может вернуть массив, но может вернуть структуру содержащую массив? Согласитесь...

3
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
28.05.2015, 00:03 2
Лучший ответ Сообщение было отмечено n0n4m3r как решение

Решение

C++
1
2
3
4
5
6
7
Creatures** createArrayC()
{
    ...
    return creatureArray;
}
.....
Creatures** creatureArray =  createArrayC();//= new Creatures*[totalLines];//раньше тут было несоответствие типов и утечка.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,512
28.05.2015, 00:09 3
Цитата Сообщение от n0n4m3r Посмотреть сообщение
Creatures** creatureArray = new Creatures*[totalLines]; //Создается двухмерный массив данных структуры
фиг вам
создается массив указателей
а вот куды энти указатели указывать будут, чей то я не увидел
0
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
28.05.2015, 00:45  [ТС] 4
Цитата Сообщение от ValeryS Посмотреть сообщение
создается массив указателей
Точно.) Спасибо за поправку.) В Ифе там заполнение этого массива шло.)

Nosey, вот я бестолочь, благодарю ;Ъ
0
28.05.2015, 00:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2015, 00:45
Помогаю со студенческими работами здесь

Как передать массив структур в функцию в качестве параметра, чтобы изменения в функции меняли исходный массив?
Допустим есть структура struct Base { int a; int b; int c; }; В...

Как вернуть массив
Можно ли вернуть массив через возвращаемое значение? Если нет, то как можно сделать вывод массива...

Как вернуть массив?
Как вернуть массив из функции и узнать его размер?

Как вернуть массив?
Нужно вернуть массив из функции, как это сделать? #include &quot;stdafx.h&quot; #include &lt;iostream&gt;...


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

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

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