• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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>

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

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