Как сделать чтобы функция возвращала массив структур, память на который была выделена динамически?
#include <fstream>
#include <cstring>
#include <string>
using namespace std;
struct scan_info
{
char model[25]; //найменування моделі
int price; // ціна
double x_size; // горизонтальний розмір області сканування
double y_size; // вертикальний розміробласті сканування
int optr; // оптичний дозвіл
int grey; // число градацій сірого
};
scan_info data_entry(); //
int main()
{
data_entry();
cout << data_array[1].model;
system("pause");
return 0;
}
scan_info data_entry()
{
int number;
cout << "Введіть кількість сканерів: ";
cin >> number;
scan_info *data_array;
data_array = new scan_info[number];
for (int i = 0; i < number; i++)
{
cout << endl
<< "Сканер №" << i + 1 << endl;
cout << "Введіть назву моделі: ";
cin >> data_array[i].model;
cout << "Ціна: ";
cin >> data_array[i].price;
cout << "Горизонтальний розмір області сканування: ";
cin >> data_array[i].x_size;
cout << "Вертикальний розміробласті сканування: ";
cin >> data_array[i].y_size;
cout << "Оптичний дозвіл: ";
cin >> data_array[i].optr;
cout << "Число градацій сірого: ";
cin >> data_array[i].grey;
}
return data_array;
} ```
С этим массивом ещё нужно будет работать (выводить в файл и другое)
Ответы (1 шт):
Автор решения: Денис Пантюшев
→ Ссылка
Функция должна быть:
scan_info* data_entry(int& number)
{
//int number;
cout << "Введіть кількість сканерів: ";
cin >> number;
...
return data_array;
}
Необходимо возвратить количество элементов в массиве, не только указатель на массив.