• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Помогите исправить опечатки!

  • Автор темы Artur1987
  • Дата начала
A

Artur1987

Мне нужно создать двумерный динамический массив [n][k]. В моей книге по С++ написано как это сделать,но код не работает.Вот он:

////////////////////////////////////////////////////
int n,k,i,*mas;
cin>>n;
cin>>k;
mas=new int[n];

for(i=0;i<n;i++) {mas=new int[k] ; }
////////////////////////////////////////////////////
Ошибка в последней строчке: error C2440: '=' : cannot convert from 'int *' to 'int'

И вторая опечатка уже в другой программе:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

class CPainterDoc : public CDocument
{
......
......
public:
// Список указателей на объекты-фигуры
CTypedPtrList <CObList, CBasePoint*> m_ShapesList;
.......
//////////////////////////////////////////////////////////
Здесь CBasePoint - созданный наследованием класс, m_ShapesList - просто переменная.
Ошибки выдаёт следующие:

error C2143: syntax error : missing ';' before '<'
error C2501: 'CTypedPtrList' : missing storage-class or type specifiers

Я не встречался ранее с такой структурой, и не могу исправить опечатку в этой строчке.
Помогите плз...
 
G

grigsoft

1. Ты объявляешь и создаешь mas как массив int, А присвоить элементу пытаешься целый массив, т.е. указатель, на что компилятор и указывает. Надо что-нибудь такое:
Код:
int** mas;
...
mas = new int*[5]

2. А ошибка-то какая?
 
P

progstone

:rolleyes: int n,k,i;
INT* mas;
cin>>n;
cin>>k;
mas=new int[n];

for(i=0;i<n;i++) {mas=new int[k] ; }
////////////////////////////////////////////////////
 
E

European

<!--QuoteBegin-Artur1987+3:05:2007, 16:59 -->
<span class="vbquote">(Artur1987 @ 3:05:2007, 16:59 )</span><!--QuoteEBegin-->Я не встречался ранее с такой структурой, и не могу исправить опечатку в этой строчке.
[snapback]64507" rel="nofollow" target="_blank[/snapback]​
[/quote]
afxtempl.h подключен?
 
A

Artur1987

afxtempl.h подключен?

Нет. А что это?

1. Ты объявляешь и создаешь mas как массив int, А присвоить элементу пытаешься целый массив, т.е. указатель, на что компилятор и указывает. Надо что-нибудь такое:
Код:
int** mas;
...
mas = new int*[5]

Спасибо!Дин.Массив работает!!! В книге действительно была опечатка
 
E

European

<!--QuoteBegin-Artur1987+5:05:2007, 11:40 -->
<span class="vbquote">(Artur1987 @ 5:05:2007, 11:40 )</span><!--QuoteEBegin-->Нет. А что это?
[snapback]64789" rel="nofollow" target="_blank[/snapback]​
[/quote]
Скорее всего, ты не подключил директивой include заголовочный файл afxtempl.h, в котором объявлен CTypedPtrList. Чтобы его подключить воспользуйся #include <afxtempl.h>
 
A

Artur1987

Скорее всего, ты не подключил директивой include заголовочный файл afxtempl.h, в котором объявлен CTypedPtrList. Чтобы его подключить воспользуйся #include <afxtempl.h>

Так оно и оказалось! Спасибо,теперь всё работает :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!