У меня очень странная ошибка с C++, которую я не могу разглядеть. Я инициализируюсь сотня массивов и раньше, но по какой-то причине, когда я делаю массив двойников:Недопустимые типы для индекса массива
double trap[]={0.0,0.0,0.0,0.0,0.0,0.0};
А затем попытаться сделать НИЧЕГО с конкретными элементами этого массива, а именно:
cout << trap[3] << endl;
Я получаю странную ошибку:
compare.cpp:43:20: error: invalid types ‘double[int]’ for array subscript
cout << trap[3] << endl;
Который я вообще не понимаю. Почему индекс (целое число) имеет какое-либо отношение к типу значения, содержащегося в этом элементе (double)?
EDIT: Вот мой полный код, который дает ошибку:
#include <stdio.h>
#include <math.h>
#include <cmath>
#include <iostream>
#include <iomanip>
using namespace std;
const double Xmax[]={2.0,10.0,20.0,40.0, 80.0, 160.0};
double f (double x) {
return (exp(-x));
}
int main() {
FILE *Trap = fopen("trap.dat","w");
double trap[]={0.0,0.0,0.0,0.0,0.0,0.0},
cout << gaus2_old[3] << endl;
//...do other stuff with trap[] and Xmax[]...
}
Где все в строке «делать другие вещи с ловушкой [] и Xmax []» только остальная часть моего кода, где каждый экземпляр ловушки [] и Xmax [] дает ту же ошибку:
compare.cpp:43:20: error: invalid types ‘double[int]’ for array
_ «Вопросы, ищущие отладку помощи (» почему не этот код работает? ") Должны включать в себя желаемое поведение, конкретную проблему или ошибку и короткий код, необходимый для воспроизведения его в вопросе сам. Вопросы без четкого описания проблемы не полезны другим читателям. См.: [** Как создать минимальный, полный и проверенный пример **] (http://stackoverflow.com/help/mcve). "_ –
Ваш пример [работает правильно] (https://ideone.com/JJq17I). – alain
Эти две строки компилируются отлично. Ошибка должна быть где-то еще. Вы можете показать нам большую часть вашего кода? –