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

Ошибка при выделении памяти под двумерный массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.69
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
12.01.2009, 15:25     Ошибка при выделении памяти под двумерный массив #1
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>
using namespace std;
 
class array {
    int size1, size2;
    char **matr;
public:
    array(int n1, int n2);
    char &push(int i, int j);
    char get(int i, int j);
};
 
array::array(int n1, int n2)
{
    int k;
    matr = new *char[n1];
    for (k=0; k<n1; k++)
        matr[k] = new char[n2];
    size1 = n1;
    size2 = n2;
}
 
char &array::push(int i, int j)
{
    if (i<0 || i>=size1 || j<0 || j>=size2) {
        cout << "Границы массива нарушены";
        exit(1);
    }
    return matr[i][j];
}
 
char array::get(int i, int j)
{
    if (i<0 || i>=size1 || j<0 || j>=size2) {
        cout << "Границы массива нарушены";
        exit(1);
    }
    return matr[i][j];
}
 
void main() {
 
    array ob(2,3);
 
    ob.push(1,1) = 'X';
    ob.push(2,3) = 'A';
    cout << ob.get(1,1) << " " << ob.get(2,3);
}
Задача: Необходимо написать программу, которая создает безопасный двумерный массив (2x3) char'ов.

Программу вроде написал. Но выдает ошибку в строке
C++
1
matr = new *char[n1];
Почему?

Добавлено через 54 секунды
Ошибка вот такая: error C2059: syntax error : '*'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2009, 15:25     Ошибка при выделении памяти под двумерный массив
Посмотрите здесь:

C++ Ошибка при динамическом выделении памяти
Ошибка при выделении памяти C++
Ошибка при выделении памяти C++
Выравнивание при динамическом выделении памяти под массив C++
Ошибка при выделении памяти динамически для структуры C++
C++ Ошибка при выделении памяти
C++ Почему не вылетает ошибка при выделении памяти под динамический массив, размером 100 Гб?
Ошибка при выделении памяти под вектор методом resize C++
Вылет при выделении памяти под вектор C++
C++ Ошибка при выделении памяти с помощью malloc
Ошибка при динамическом выделении памяти C++
Двумерный массив символов: при высвобождении памяти возникает ошибка C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
12.01.2009, 15:26     Ошибка при выделении памяти под двумерный массив #2
Наверное, потому что типа "*char" не существует
А существует, например "char *"...
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
12.01.2009, 15:30  [ТС]     Ошибка при выделении памяти под двумерный массив #3
Спасибо.))) Блин, что за голова))
Yandex
Объявления
12.01.2009, 15:30     Ошибка при выделении памяти под двумерный массив
Ответ Создать тему
Опции темы

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