Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
8 / 8 / 5
Регистрация: 21.11.2012
Сообщений: 98
1

Создание двумерного динамического массива (вылет из программы)

14.12.2015, 01:14. Показов 1786. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Создаю двумерный динамический массив:
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
    srand(time(NULL));
    int n;
    bool check=false;
    do
    {   
        if (check)
            cout <<"Повторите! Число четное... ";
        check = true;
        cout << "Введите n (нечетное):\t";
        cin >> n;
    }
    while (n%2==0);
    int** a = new int *[n];
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            a[i][j] = rand()%10;
        }
    }
    system("pause");
    return 0;
}
После ввода корректного числа (1,3,5 etc.) программа вылетает ("Прекращена работа программы.." блабла)
Неправильно создаю динамический массив двумерный? В чем проблема, не могу понять?
Подскажите, пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2015, 01:14
Ответы с готовыми решениями:

Вылет программы при удалении динамического массива
Писал программу с использованием динамического массива, все компилилось нормально, но в какой-то...

Прекращение работы (вылет) программы при попытке вывести в поток значения динамического массива
Доброго всем времени суток. Подскажите пожалуйста, почему возникает следующая проблема. Есть...

Создание двумерного динамического массива
У Хортона А. - Visual C++ 2005 написано как создавать динамические массивы таким способом: ...

Создание двумерного динамического массива
Какой код может быть использован для создания массива из 10 столбцов и n строк? Переменная n...

4
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
14.12.2015, 01:30 2
Цитата Сообщение от lampard14 Посмотреть сообщение
В чем проблема, не могу понять?
Двумерный массив - это одномерный массив, каждый элемент которого является указателем на массив.
В строке 22 ты выделил как раз этот массив указателей, но не выделил память под сами массивы, на которые эти указатели должны указывать.
0
8 / 8 / 5
Регистрация: 21.11.2012
Сообщений: 98
14.12.2015, 01:50  [ТС] 3
nonedark2008, спасибо, как исправить?

Добавлено через 11 минут
Решено, спасибо!
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
int main()
{
    setlocale(LC_ALL, "Rus");
    srand(time(NULL));
    int n;
    bool check=false;
    do
    {   
        if (check)
            cout <<"Повторите! Число четное... ";
        check = true;
        cout << "Введите n (нечетное):\t";
        cin >> n;
    }
    while (n%2==0);
    int** a = new int *[n];
    for (int i=0; i<n; i++)
        a[i] = new int [n];
    for (int i=0; i<n; i++)
    {
        for (int j=0; j<n; j++)
        {
            a[i][j] = rand()%10;
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
 
    
    return 0;
}
0
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
14.12.2015, 01:51 4
Между строками 24-25:
C++
1
a[i] = new int[n];
0
1647 / 1095 / 488
Регистрация: 17.07.2012
Сообщений: 5,356
14.12.2015, 01:55 5
C++
1
2
3
4
int** a = new int *[n];//Выделение памяти
for (int i=0; i<n; i++) a[i]=new int[n];
for (int i=0;i<n;i++) delete[] a[i];//Освобождение памяти
delete[] a;
0
14.12.2015, 01:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2015, 01:55
Помогаю со студенческими работами здесь

Создание динамического двумерного массива
void CreateArray(double **DynamicArray, int n){ //??? double **DynamicArray = new double* ; ...

Массив: создание динамического двумерного массива
Создаю двумерный динамический массив. После ввода m n - конец программы. Помогите, пожалуйста. #...

Создание двумерного динамического массива в функции
Здравствуйте. Скажите где я допустил ошибку в создании динамического массива? #include&lt;stdio.h&gt;...

Создание двумерного динамического массива
Доброго времени суток. Нужно создать двумерный динамический массив (не используя указатели): ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru