сортировка пузырьком C++ структуры в файле

необходимо отсортировать и сделать поиск инфы по файлу. вот что у меня получилось

выдает ошибку 'Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка (активно) E0167 аргумент типа "TV_Programm *" несовместим с параметром типа "char"' и 'Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка C2664 "void Sort(TV_Programm **,const char)": невозможно преобразовать аргумент 2 из "TV_Programm *" в "const char"'

и еще вопрос: у меня структура или массив динамический или нет?

// ConsoleApplication1.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
        //
        
        #include <iostream>
        #include <string>
        #include <conio.h>
        #include <iostream>
        #include <windows.h> //#include <Windows.h> // для работы SetConsoleCP, SetConsoleOutputCP
        #include <fstream>
        #include <clocale>
        #include <cstdlib> // подключаем цвета консоли
        #include <algorithm>
        #include <vector>
        #pragma warning(disable : 4996);
        
        #define FNAME "Text.txt" // файл
        #define SIZELST 100
        #define COL 80
        #define ROW 20
        
        using namespace std;
        typedef struct {
            char chanell[25]; // канал
            char date_time[25]; // время и дата показа
            char show[25]; // программа
        } TV_Programm;
        //TV_Programm tv[SIZELST];//массив структур
        TV_Programm* tv = new TV_Programm[SIZELST];
        int nst = 0; //число введенных структур
        
        //  прототипы пользовательских функций
        int menu(); // главное меню 
        int spisok(); // ввод исходных данных
        int resc(); //вывод содержимого текстового файла на экран 
        int poisk(); // поиск информации
        
        int menu() // функция МЕНЮ
        {
            cout << "-----============== ИНФОРМАЦИОННАЯ СИСТЕМА - ТЕЛЕПРОГРАММА ================-----\n";
            cout << " 1 - ДОБАВИТЬ ИНФОРМАЦИЮ" << endl;
            cout << " 2 - ПРОСМОТР ВСЕЙ ИНФОРМАЦИИ" << endl;
            cout << " 3 - ПОИСК ИНФОРМАЦИИ по заданному критерию" << endl;
            cout << " 0 - ВЫХОД " << endl;
            cout << "Выберите операцию:";
            int menu_number; // число выбора из меню
            cin >> menu_number;
            return menu_number;
        }
        
        int spisok() // функция ВВОДА ДАННЫХ ПРОГРАММЫ В ФАЙЛ
        {
            SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
            SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
            setlocale(LC_ALL, "Rus"); // Подключение русского языка
        
            ofstream outFil(FNAME); // Открытие файла для записи и проверка на открытие
            if (!outFil)
            {
                cout << "Не открыт файл " << FNAME;
                _getch();
                return 1;
            }
            system("cls");
            cout << " Введите число каналов: ";
            cin >> nst; cout << endl;
        
            for (int j = 0; j < nst; j++) // цикл заполнения файла
            {
                cin.ignore();
                cout << "Введите название канала, время и программу через пробел: " << endl;
                cout << "Пример: Channel Time Program ЛИБО Канал Время Программа " << endl;
        
                //cin >> tv[j].chanell;
                scanf("%s", &tv[j].chanell);
        
                cin.ignore();
                //cout << "Введите время и дата показа: " << endl;
                
                //cin >> tv[j].date_time;
                scanf("%s", &tv[j].date_time);
        
                cin.ignore();
                //cout << "Введите программу: " << endl;
               
                //cin >> tv[j].show;
                scanf("%s", &tv[j].show);
                
                //cin.ignore();
                outFil << tv[j].chanell << " "
                    << tv[j].date_time << " "
                    << tv[j].show << "\n";
            }
            outFil.close();
        }
        
        int resc() // функция ВЫВОДА ИЗ ФАЙЛА ВСЕЙ ИНФОРМАЦИИ
        {
            setlocale(LC_CTYPE, "rus");
            string textline;
            char matr[ROW][COL];
            int count = -1;
        
            // Имя открываемого файла, задано в директиве #define
            ifstream inFile(FNAME);
            if (!inFile)
            {
                cout << "Не открыт файл" << FNAME;
                _getch();
                return 1;
            }
            /*// Вывод содержимого текстового файла на экран
            char ch;
            while (inFile.get(ch)) cout << ch;*/
            //чтение файла в матрицу
            system("cls");
            cout << "\nСодержимое файла с данными\n";
            while (getline(inFile, textline))
            {
                count++;
                strcpy(matr[count], textline.c_str());
                cout << "\n" << matr[count];
            }
            cout << "\n"; cout << endl;
            return 0;
        }
        
        //
        void Sort(TV_Programm** q, const char n) {
            for (int i = 0;i < n;i++) {
                for (int j = 0;j < n - i - 1;j++) {
                    if (q[j]->chanell > q[j + 1]->chanell)
                    {
                        TV_Programm* temp = q[j];
                        q[j] = q[j + 1];
                        q[j + 1] = temp;
                    }
                }
            }
        }
        //
        int poisk() // поиск информации
        {
            setlocale(LC_CTYPE, "rus");
            //printf("%s", tv[0].chanell);
            TV_Programm** tv_new = new TV_Programm*[SIZELST];
            for (int i = 0;i < SIZELST;i++) tv_new[i] = &tv[i];
        
            Sort(tv_new, tv);
        
            return 0;
        }
        
        int main()
        {
            setlocale(LC_CTYPE, "rus");
            system("color 74"); // меняем цвета консоли
            while (true) 
            {
                switch (menu())
                {
                case 1: {spisok(); break; } // функция ВВОДА ДАННЫХ ПРОГРАММЫ В ФАЙЛ
                case 2: {resc(); break; } // функция ВЫВОДА ИЗ ФАЙЛА ВСЕЙ ИНФОРМАЦИИ
                case 3: {poisk(); break; } // поиск информации
                case 0: {return 0; break; } // выход из программы
                default: { system("cls"); cout << "Выберите правильно!\n";} // проверка если выбор не из меню
                }
            }
        
            getch();
        }

Ответы (0 шт):