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

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

Войти
Регистрация
Восстановить пароль
 
Кемаль
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 38
#1

Ошибка при выполнении программы. - C++

30.11.2010, 17:57. Просмотров 441. Ответов 4
Метки нет (Все метки)

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
#include <iostream>
#include <math.h>
#include <time.h>
#include <cstdlib>
using namespace std;
int main ()
{
    int n, m, k;
    int sum = 0;
    cout <<"Enter the number of strings"<<endl;
    cin >> n;
    cout <<"Enter the number of columns"<<endl;
    cin >> m;
    srand(time(NULL));
    int **a = new int* [n];
    for (int i = 0; i < n; i++)
    {
        a[i] = new int [m];
    }
    cout <<"The massive is"<< endl;
    for (int i = 0; i< n; i++)
    {
        for (int j = 0; j < 2*m; j++)
        {
            a[i][j] = rand()% 10;
            cout << a[i][j]<<' ';
        }
        cout << endl;
    }
 
    for (int i = 0; i < n; i++)
    {
        delete [] a[i];
    }
    delete [] a;
        system ("PAUSE");
    return 0;
}
После выполнения программы вижу такую ошибку.
Видимо неправильно освобождаю память, если так, то покажите пожалуйста как будет правильно.
п.с. Просто делаю двумерный массив для последующей работы с ним.
0
Миниатюры
Ошибка при выполнении программы.  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2010, 17:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при выполнении программы. (C++):

Ошибка при выполнении программы - C++
//set.h #pragma once typedef unsigned short WORD; class Set { private: int minElem; int maxElem;

Ошибка при выполнении программы - C++
Выдает вот такую ошибку при выполнении программы. Компиляция происходит нормально. а работать не хочет. Уже запустил легкую программу, но...

Ошибка <hash_map> при выполнении программы - C++
При выполнении простого консольного проекта C++ #include &quot;std_lib_facilities.h&quot; int main() { cout &lt;&lt; &quot;I hate u, VS!\n&quot;; ...

При выполнении программы выходит ошибка - C++
Когда выполняется программа выходит ошибка: Необработанное исключение по адресу 0x77A8205E (msvcr120d.dll) в Тест графиков.exe: 0xC0000005:...

Настройка unicode. Ошибка при выполнении программы - C++
Здравствуйте. Знаю, что есть tchar.h, но мне нужно настроить unicode самому. #ifdef UNICODE #define TCHAR wchar_t #define...

Динамический массив. Ошибка при выполнении программы - C++
Программа должна предоставить заполнение массива пользователю, а дальше вывести массив на экран. (Массив динамический) При компиляции...

4
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
30.11.2010, 18:12 #2
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
#include <iostream>
#include <math.h>
#include <time.h>
#include <cstdlib>
using namespace std;
int main ()
{
        int n, m, k;
        int sum = 0;
        cout <<"Enter the number of strings"<<endl;
        cin >> n;
        cout <<"Enter the number of columns"<<endl;
        cin >> m;
        srand(time(NULL));
        int **a = new int* [n];
        for (int i = 0; i < n; i++)
        {
                a[i] = new int [2*m];
        }
        cout <<"The massive is"<< endl;
        for (int i = 0; i< n; i++)
        {
                for (int j = 0; j < 2*m; j++)
                {
                        a[i][j] = rand()% 10;
                        cout << a[i][j]<<' ';
                }
                cout << endl;
        }
 
        for (int i = 0; i < n; i++)
        {
                delete [] a[i];
        }
        delete [] a;
                system ("PAUSE");
        return 0;
}
Или может так

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
#include <iostream>
#include <math.h>
#include <time.h>
#include <cstdlib>
using namespace std;
int main ()
{
        int n, m, k;
        int sum = 0;
        cout <<"Enter the number of strings"<<endl;
        cin >> n;
        cout <<"Enter the number of columns"<<endl;
        cin >> m;
        srand(time(NULL));
        int **a = new int* [n];
        for (int i = 0; i < n; i++)
        {
                a[i] = new int [m];
        }
        cout <<"The massive is"<< endl;
        for (int i = 0; i< n; i++)
        {
                for (int j = 0; j < m; j++)
                {
                        a[i][j] = rand()% 10;
                        cout << a[i][j]<<' ';
                }
                cout << endl;
        }
 
        for (int i = 0; i < n; i++)
        {
                delete [] a[i];
        }
        delete [] a;
                system ("PAUSE");
        return 0;
}
0
Кемаль
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 38
30.11.2010, 18:13  [ТС] #3
Пожалуйста пояснение.
Всё из- за не указанного 2*m в первом по счету цикле?
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
30.11.2010, 18:15 #4
Вы виходите за предел созданой матрицы

У вас так

C++
1
2
3
a[i] = new int [m];
.......
 for (int j = 0; j < 2*m; j++)
Ето не правильно, потому что память выделена под m-елементов, а цикл выполняется до 2*m!!!
1
Кемаль
0 / 0 / 0
Регистрация: 02.11.2010
Сообщений: 38
30.11.2010, 18:20  [ТС] #5
Цитата Сообщение от MILAN Посмотреть сообщение
Вы виходите за предел созданой матрицы

У вас так

C++
1
2
3
a[i] = new int [m];
.......
 for (int j = 0; j < 2*m; j++)
Ето не правильно, потому что память выделена под m-елементов, а цикл выполняется до 2*m!!!
Спасибо. Просто мне надо сделать матрицу размера n x 2m, думал можно будет указать m, а пробегать до 2*m, поэтому так вышло.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2010, 18:20
Привет! Вот еще темы с ответами:

Ошибка нарушения прав доступа при выполнении программы - C++
Програмка компилируется, но не запускается. Ошибка: 1000 (0) handle_exceptions: Exception: STATUS_ACCESS_VIOLATION preo 1000 (0)...

Удаление комментариев из текста программы с использованием STL, ошибка при выполнении - C++
Здравствуйте решал задачу с использованием STL из книги Страуструпа 6.22 возникла проблема программа вылетает, помогите пожалуйста...

Ошибка при выполнении программы "division by zero" - C++
Прошу, обьясните мне, почему когда я уже запускаю прогу и ввожу числа вилетает ошибка:

Что будет выведено на экран при выполнении следующей программы при n = 5 ? - C++
Пожалуйста, очень прошу помогите с тестами(( 3)Что будет выведено на экран при выполнении следующей программы при n = 5 ? ...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
30.11.2010, 18:20
Ответ Создать тему
Опции темы

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