Сдвиг двухмерного динамического массива по строкам и столбцам на 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;`
Не понимаю, что именно нужно исправить и правильно ли я реализовала сдвинутую индексацию.