Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
spector32
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 4
#1

Почему ошибка? - C++

20.04.2012, 20:47. Просмотров 530. Ответов 12
Метки нет (Все метки)

Почему ошибка?

Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <conio.h>
#include <string>
#include <iomanip>
 
using namespace std;
 
int main()
{
    
    int a[10][10];
 
    for(int i=0; i<=10; i++)
        for(int i2=0; i2<=10; i2++)
            a[i][i2]=i*i2;
 
    for(int i=0; i<=10; i++)
    {
        for(int i2=0; i2<=10; i2++)
        cout<<setw(3)<<a[i][i2]<<" ";
        cout<<endl;
    }
 
 
 
    getche();
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 20:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему ошибка? (C++):

Почему ошибка? - C++
Почему пишет ошибку в randznak вот в этих кусках: if (a != 1 &amp;&amp; a != 2 &amp;&amp; a != 3 &amp;&amp; a != 4){ cout &lt;&lt; &quot;Неверный...

Почему ошибка? - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; using namespace std; int main() { ...

почему ошибка? - C++
#include &lt;iostream&gt; using namespace std; typedef unsigned int uint; template &lt;typename T&gt; class Vector { T *data; uint count;...

Почему ошибка? - C++
#include &lt;iomanip&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt; #include &lt;stdlib.h&gt; using namespace std; int main() { ...

Почему ошибка значения? - C++
при работе с односвязным списком: struct LIST { char stroka; LIST *next; }; во время сортировки строк s1=p1-&gt;stroka; ...

Что за ошибка и почему? - C++
Нужно сделать двунаправленный список с кучей функций, список создал, много чего сделал, осталось добавление и обновление. Уже около...

12
saserlend
11 / 11 / 1
Регистрация: 25.11.2011
Сообщений: 145
20.04.2012, 20:51 #2
[i2] если не ошибаюсь сделай [j]
0
NoMasters
Псевдослучайный
1764 / 1107 / 73
Регистрация: 13.09.2011
Сообщений: 3,148
20.04.2012, 20:53 #3
Выход за пределы массива, нет там десятых элементов.
0
spector32
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 4
20.04.2012, 20:55  [ТС] #4
Цитата Сообщение от saserlend Посмотреть сообщение
[i2] если не ошибаюсь сделай [j]
Ничё не изменилось...

Добавлено через 39 секунд
Цитата Сообщение от NoMasters Посмотреть сообщение
Выход за пределы массива, нет там десятых элементов.
C++
1
a[10][10];
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
20.04.2012, 20:57 #5
в условии циклов поставь строгое сравнение < 10
0
spector32
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 4
20.04.2012, 21:03  [ТС] #6
Цитата Сообщение от antoha398 Посмотреть сообщение
в условии циклов поставь строгое сравнение < 10
Я начинающий, у чела который ведёт урок по C++ всё работаем. Это таблица умножения до 100.

Мне надо чтобы было <=10;
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
20.04.2012, 21:05 #7
DELETED
0
antoha398
155 / 155 / 3
Регистрация: 29.03.2012
Сообщений: 418
20.04.2012, 21:06 #8
тогда сиди с ошибкой.

либо массив больше делай
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
20.04.2012, 21:08 #9
spector32, вы объявляете массив из 10 элементов. В С++ индексация элементов идет с 0. Первый элемент в данном случае 0-вой, последний 9-ый. Вы вышли за пределы, когда указали <= 10, так как нет у вас элемента с индексом 10.
1
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
20.04.2012, 21:12 #10
Цитата Сообщение от spector32 Посмотреть сообщение
int a[10][10];
for(int i=0; i<=10; i++)
* * * * for(int i2=0; i2<=10; i2++)
Массивы начинаются с ноля, но в скобках количество элементов, поэтому последний - девятый.

Добавлено через 3 минуты
Цитата Сообщение от saserlend Посмотреть сообщение
[i2] если не ошибаюсь сделай [j]
Слишком сложно придумать язык, чей компилятор мог бы на это реагировать даже в варианте ручной компиляции. Лет 300 после создания подлинного искусственного интеллекта точно не смогут. Да и не нужно это.
1
spector32
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 4
20.04.2012, 21:14  [ТС] #11
Цитата Сообщение от Toshkarik Посмотреть сообщение
spector32, вы объявляете массив из 10 элементов. В С++ индексация элементов идет с 0. Первый элемент в данном случае 0-вой, последний 9-ый. Вы вышли за пределы, когда указали <= 10, так как нет у вас элемента с индексом 10.
Спасибо! Въехал!
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
20.04.2012, 21:16 #12
1. 0-й,
2. 1-й,
3. 2-й.
4. 3-й.
5. 4-й.
6. 5-й.
7. 6-й.
8. 7-й.
9. 8-й.
10. 9-й.
Принцип понятен? Если начинаешь с нуля, то номер на 1 меньше индекса.
0
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
20.04.2012, 23:37 #13
Цитата Сообщение от spector32 Посмотреть сообщение
Я начинающий, у чела который ведёт урок по C++ всё работаем. Это таблица умножения до 100.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <conio.h>
#include <iomanip>
 
using namespace std;
 
int main()
{
    
    int a[10][10] = {0};
 
    for(int i = 0; i < 10; i++)
        for(int i2= 0; i2 < 10; i2++)
            a[i][i2] = (i + 1) * (i2 + 1);
 
    for(int i = 0; i < 10; i++)
    {
        for(int i2 = 0; i2 < 10; i2++)
        cout << setw(3) << a[i][i2] << " ";
        cout<<endl;
    }
 
 
 
    getche();
 
    return 0;
}
0
20.04.2012, 23:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2012, 23:37
Привет! Вот еще темы с ответами:

(матрица)Почему ошибка в if? - C++
int d=1;k=0; for(j=k;j&lt;d;j++,d++) for(i=0;i&lt;n;i++) {if(a%2!=0)// Здесь ошибка

Почему возникает ошибка? - C++
template &lt;class T&gt; class HashTable { .... }; class FileHashTable: public HashTable &lt;Policy&gt; { public: FileHashTable()...

ошибка не могу понять почему ! - C++
#include &lt;iostream&gt; #include &lt;Windows.h&gt; using namespace std; const int col=20; //создание структуры для библиотеки struct...

Калькулятор, почему возникает ошибка? - C++
#include &lt;iostream&gt; using namespace std; double sum (double *aPtr) { int sum,i; sum+=(*aPtr); cout&lt;&lt;sum&lt;&lt;endl; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.