Сдвиг двухмерного динамического массива по строкам и столбцам на C++

Пыталась реализовать сдвинутую индексацию двухмерного динамического массива по строкам и столбцам

bool checkKurca(float stock[], int mec) {
        for (int i = 1; i < mec; i++)
            if (stock[i] <= stock[i - 1])
                return false;
        return true;
    }

int main() {
        srand(time(NULL));
        setlocale(LC_ALL, "Russian");
    
        int N, mec,ind_mec, ind_N;
    
        do {
            cout << "Введите количество фирм: ";
            cin >> N;
        } while (N < 1);
    
        do {
            cout << "Введите количество месяцев: ";
            cin >> mec;
        } while (mec < 1);
    
        cout << "Введите индекс для фирм";
        cin >> ind_N;
    
        cout << "Введите индекс для месяцев";
        cin >> ind_mec;
        float** stock = new float *[N]-ind_N;
        //float** stock =(int**)malloc(N*sizeof(float))-ind_N;
        int chet = 0;
        cout << "Исходные данные:\n";
        cout << fixed << setprecision(2);
        for (int i = 0; i < N; i++) {
            stock[i] = new float[mec+ind_mec];
            //stock[i] = (int*)malloc((mes-ind_mec)*sizeof(float));
            printf("фирма %d:", i + 1);
            for (int j = 0; j < mec; j++) {
                stock[i+ind_N][j+ind_mec] = (float)rand() / (RAND_MAX) * 100;
                cout << setw(8) << stock[i+ind_N][j+ind_mec];
    
            }
            printf("\n");
        }
    
        cout << "Фирмы, курс акций которых превышался\n";
        for (int i = 0; i < N; i++) {
            if (checkKurca(stock[i+ind_N], mec)) {
                printf("Фирма %d\n", i + 1);
                chet++;
            }
    
        }
        for (int i = 0; i < mec; i++) {
            delete[] stock[i+ind_mec];
            // free(stock[i]);
        }
        delete[] (stock-ind_N);
        // free(stock-ind_N);
        if (chet == 0) printf("Таких фирм нет");

При отладке программа останавливается на строчке

`stock[i+ind_N][j+ind_mec] = (float)rand() / (RAND_MAX) * 100;`

Не понимаю, что именно нужно исправить и правильно ли я реализовала сдвинутую индексацию.


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