Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
#1

Ошибка "Выход за границу вектора" - C++

13.04.2011, 11:17. Просмотров 344. Ответов 3
Метки нет (Все метки)

Помогите пожалуйста, не пойму в чем дело, вывод массива по лекции сделал а на нем ошибка выход за границу вектора. Объясните плиз.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <vector>
#include <ctime>
using namespace std;
typedef vector<int> row;
typedef vector<row> matrix;
 
void create_random (int n, matrix &A)
{
    row Row(n);
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            Row[j]=(rand()%2);
        }
        A.push_back(Row);
    }
}
 
void vivod (int n, matrix A)
{
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            cout<<A[i][j]<<'\t';
        }
        cout<<endl;
    }
}
 
int main()
{
    int n;
    srand((unsigned)time(NULL));
    setlocale(LC_ALL, "Russian");
    do
    {
        cout<<"Введите размер квадратной матрицы"<<endl;
        cin>>n;
    }
    matrix A(n);
    create_random (n,A);
    vivod(n,A);
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2011, 11:17     Ошибка "Выход за границу вектора"
Посмотрите здесь:

Ошибка: "main" должен вернуть "int'' C++
C++ Ошибка argument of type "CGroup *" is incompatible with parameter of type "CGroup *"
"вычислить" элементы вектора C++
C++ Удалить из отсортированного вектора, числа которые являются "квадратными"
C++ Произведение матриц, выход за границу массива
Ошибка деструктора - В конструкторе происходит выход за границу массива C++
Ошибка: несовместимые типы операндов ("int *" и "int") C++
C++ Перегрузить "operator -" так, чтобы из вектора удалялся элемент, присутствующий во втором векторе
Ошибка со string: "идентификатор "string" не определен" C++
Добавить выход из программы после ввода "0" C++
C++ Непонятная ошибка (выход за границы вектора)
Выход за границу выделенной памяти C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
prazuber
108 / 108 / 3
Регистрация: 29.04.2010
Сообщений: 240
13.04.2011, 11:24     Ошибка "Выход за границу вектора" #2
C++
1
matrix A(n);
(в функции main) изменить на
C++
1
matrix A;
fenix117
8 / 8 / 1
Регистрация: 16.03.2011
Сообщений: 249
13.04.2011, 11:28  [ТС]     Ошибка "Выход за границу вектора" #3
а можно так заполнять?
C++
1
2
3
4
5
6
7
8
void create (int n, matrix &A)
{
    for (int i=0; i<n; i++)
        for (int j=0; j<n; j++)
        {
            A[i][j]=(rand()%2);
        }
}
prazuber
108 / 108 / 3
Регистрация: 29.04.2010
Сообщений: 240
13.04.2011, 11:32     Ошибка "Выход за границу вектора" #4
C++
1
2
3
4
5
6
7
8
9
10
void create_random (int n, matrix &A)
{
    A.resize(n);
    for (int i=0; i<n; i++)
    {
        A[i].resize(n);
        for (int j=0; j<n; j++)
            A[i][j]=(rand()%2);
    }
}
Вот так можно тогда.
Либо выделить память и потом изменять ее содержимое, либо делать это одновременно с помощью push_back
Yandex
Объявления
13.04.2011, 11:32     Ошибка "Выход за границу вектора"
Ответ Создать тему
Опции темы

Текущее время: 00:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru