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

Artur1987

Active member
31.03.2007
31
0
#1
Мне нужно создать двумерный динамический массив [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

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

grigsoft

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

progstone

#3
: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] ; }
////////////////////////////////////////////////////
 
04.09.2006
2 566
3
#4
<!--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 подключен?
 

Artur1987

Active member
31.03.2007
31
0
#5
Нет. А что это?

1. Ты объявляешь и создаешь mas как массив int, А присвоить элементу пытаешься целый массив, т.е. указатель, на что компилятор и указывает. Надо что-нибудь такое:
Код:
int** mas;
...
mas = new int*[5]
Спасибо!Дин.Массив работает!!! В книге действительно была опечатка
 
04.09.2006
2 566
3
#6
<!--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>
 

Artur1987

Active member
31.03.2007
31
0
#7
Скорее всего, ты не подключил директивой include заголовочный файл afxtempl.h, в котором объявлен CTypedPtrList. Чтобы его подключить воспользуйся #include <afxtempl.h>
Так оно и оказалось! Спасибо,теперь всё работает :)