
C/C++
ИЗУЧАЮ С++ ЧТО ЗА ОШИБКА?

double degr[360]; // Получает значение
Нет элемента массива с индексом 359. Последний элемент имеет индекс 368. В C++ обычно три пишем, два в уме ;) Хотя зачем тут вообще массив, я не знаю :)
Что такое массив?
Массив это просто указатель (адрес в памяти (число)) который указывает на начало твоего массива. в твоем случаее помимо указателя ты обьявил агрегат который будет лежать на стеке но не суть. по факту переменная degr это указатель.
(x) (y) (z) (w)
-^---------------
скажем вот, массив и снизу указатель.
указатель указывает на первый элемент массива.
чтобы получить первый элемент массива нужно сдвинуть указатель на 0 в право.
*(degr + 0) = 414124.414;
или
degr[0] = 313231.1241;
или
0[degr] = 124124124.1424;
как видишь методов сдвига указателей несколько и два из них сразу возращяют контекст переменной внутри массива.
чтобы получить указатель на второй элемент нужно сдвинуть указатель на еденицу в право.
(x) (y) (z) (w)
------^----------
*(degr + 1) = 414124.414;
или
degr[1] = 313231.1241;
или
1[degr] = 124124124.1424;
теперь когда ты понял что массив в С++ по определению это указатель на первый элемент в массиве ты должен понять что
в твоем случае ты выходишь за пределы массива получая данные в за его пределами/
double degr[359]; // Получает значение
for (int i = 0; i <= 359; i++) {
rot = rot + 1;
degr[i] = cos(rot * PI / 180);
cout << degr[i] << endl;
}
и да при обьявлении агрегата как масива на N элементов указывается количество елементов
например
double salo[5];
это будет такой масив
(x) (y) (z) (w) (u)
-^------------------
salo[4] == u
salo[0] == x
так-же получив адрес на любую переменную (не агрегат)
ты сможешь представить ее как массив из одного елемента
double privet = 0.4;
double* salo = &privet;
for (int i = 0; i < 1; i++) {
std : : cout << salo[i];
}
так-же ты можешь немного взломать жизнь
и обьявив две переменные
double x;
int y;
получить на них адреса.
char* s = reinterpret_cast < char* > ( &x );
char* v = reinterpret_cast < char* > ( &y );
и вывести растояние на котором они лежат друг от друга
std::cout << s - v;
Массив это просто указатель (адрес в памяти (число)) который указывает на начало твоего массива. в твоем случаее помимо указателя ты обьявил агрегат который будет лежать на стеке но не суть. по факту переменная degr это указатель.
(x) (y) (z) (w)
-^---------------
скажем вот, массив и снизу указатель.
указатель указывает на первый элемент массива.
чтобы получить первый элемент массива нужно сдвинуть указатель на 0 в право.
*(degr + 0) = 414124.414;
или
degr[0] = 313231.1241;
или
0[degr] = 124124124.1424;
как видишь методов сдвига указателей несколько и два из них сразу возращяют контекст переменной внутри массива.
чтобы получить указатель на второй элемент нужно сдвинуть указатель на еденицу в право.
(x) (y) (z) (w)
------^----------
*(degr + 1) = 414124.414;
или
degr[1] = 313231.1241;
или
1[degr] = 124124124.1424;
теперь когда ты понял что массив в С++ по определению это указатель на первый элемент в массиве ты должен понять что
в твоем случае ты выходишь за пределы массива получая данные в за его пределами/
double degr[359]; // Получает значение
for (int i = 0; i <= 359; i++) {
rot = rot + 1;
degr[i] = cos(rot * PI / 180);
cout << degr[i] << endl;
}
и да при обьявлении агрегата как масива на N элементов указывается количество елементов
например
double salo[5];
это будет такой масив
(x) (y) (z) (w) (u)
-^------------------
salo[4] == u
salo[0] == x
так-же получив адрес на любую переменную (не агрегат)
ты сможешь представить ее как массив из одного елемента
double privet = 0.4;
double* salo = &privet;
for (int i = 0; i < 1; i++) {
std : : cout << salo[i];
}
так-же ты можешь немного взломать жизнь
и обьявив две переменные
double x;
int y;
получить на них адреса.
char* s = reinterpret_cast < char* > ( &x );
char* v = reinterpret_cast < char* > ( &y );
и вывести растояние на котором они лежат друг от друга
std::cout << s - v;
Kirill Yakovlev
"вывести расстояние на котором они лежат друг от друга", почему все время результат 12?
Kirill Yakovlev
разобрался
Похожие вопросы
- Хочу изучать программирование, но не знаю с чего начать?
- Ошибка C2280 предпринята попытка ссылки на удаленную функцию C++
- Помогите найти ошибки в коде на C++, не выводится последняя строчка
- Как решить ошибку C2079 использует не имеющую определения структуру class C++
- Как решить ошибки E0144 и E0077 C++
- Ошибка в динамическом массиве new[] и delete[] |С++ Builder
- Синтаксическая ошибка класса. C++
- Как вы изучали, как посоветуете изучать C++
- Какие отличия(простыми словами) в языках программирования Java и C++? Что лучше изучать. У какого больше возможностей?
- Что тяжелее изучать - Джаву, или пайтон?