Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу Объявление переменной Char
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Kate_Explorer Kate_Explorer вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.12.2004
По умолчанию Объявление переменной Char - 08.10.2005, 00:38

Я объявляю в новом классе переменную char* cField[3] [3], то есть указатель на массив 3 на 3. А когда в конструкторе пишу cField = new char[3][3] выползает странная ошибка: cannot convert from 'char (*)[3]' to 'char *[3][3]' А что здесь не так???
Ответить с цитированием
  (#2 (permalink)) Старый
Omen Omen вне форума
Member
 
Сообщений: 467
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 05.05.2004
По умолчанию Re: Странная ошибка!.. HELP!!! - 08.10.2005, 01:11

Цитата:
Originally posted by Kate_Explorer
[b]Я объявляю в новом классе переменную char* cField[3] [3], то есть указатель на массив 3 на 3. А когда в конструкторе пишу cField = new char[3][3] выползает странная ошибка: cannot convert from 'char (*)[3]' to 'char *[3][3]' А что здесь не так???
В таком случае нужно объявлять просто char** cField;
Ответить с цитированием
  (#3 (permalink)) Старый
Kate_Explorer Kate_Explorer вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.12.2004
По умолчанию 08.10.2005, 18:10

Пасиб! Только как же тогда выделять память для такой переменной? Он все равно ругается... Что-то не так делаю... Если писать char** cField;и cField = new char[3][3] все равно та же ошибка
Ответить с цитированием
  (#4 (permalink)) Старый
wanja wanja вне форума
Member
 
Сообщений: 584
Сказал(а) спасибо: 1
Поблагодарили 25 раз(а) в 25 сообщениях
Регистрация: 08.05.2005
По умолчанию 08.10.2005, 20:22

а так:
Cfield=new (char*)[3][3]
Ответить с цитированием
  (#5 (permalink)) Старый
Shunix Shunix вне форума
Member
 
Сообщений: 1,355
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.06.2002
По умолчанию 09.10.2005, 00:09

Note:
char* cField[3] [3] - не есть "указатель на массив 3x3". Данная конструкция является массивом 3x3 указателей на char. Откуда следует, что память резервировать надо не под массив, а под каждую ячейку этого массива. Рекомендую обратиться к литературе, раздел "Динамическая память и указатели".
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Yaroslav Yaroslav вне форума
Member
 
Сообщений: 166
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.10.2004
По умолчанию Странная ошибка ............. - 09.10.2005, 19:32

Чтобы обявить массив 3х3 просто
Код:
char array[3][3]
Надейся на лучшие но и не забывай и про худшие.
Ответить с цитированием
  (#7 (permalink)) Старый
Kate_Explorer Kate_Explorer вне форума
Member
 
Сообщений: 27
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.12.2004
По умолчанию 10.10.2005, 12:11

Я чувствую, что все же будет проще вам сказать, что мне конкретно нужно ! "Создать класс типа игра в крестики-нолики. Поле класса - массив из (3х3). Ставить можно только на свободные." Поэтому мне желателен указатель на массив 3х3, но как под него выделить память? Я уже все, что было, все книжки перекопалп, там такого не нашла!!! Даже если без указателей, все равно не могу память выделить (char cField[3][3])
Ответить с цитированием
  (#8 (permalink)) Старый
Rocky Rocky вне форума
Member
 
Сообщений: 1,405
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.10.2004
По умолчанию 10.10.2005, 13:37

Т.е. надо динамически создать массив 3х3? Тогда так:
Код:
char **cField = new char*[3];
for (i = 0; i < 3; i++) 
    cField[i] = new char[3];
Не забудьте очистить память, когда массив не будет нужен. А зачем нужен указатель на массив, если для обращения к его элементам достаточно указывать их индексы, i, j?
Ответить с цитированием
  (#9 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 10.10.2005, 16:33

Такие мучения из-за какого-то одного массива 3х3!
Давай просто объявим его в классе и не будем морочить друг другу голову:
Код:
class CClassName{
private:
  char field[3][3];
};
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно сделать объявление переменной Lisska C++ Builder 3 06.06.2011 16:27
Объявление переменной в Unit.h char charr Volodija C++ Builder 2 19.01.2011 10:47
Преобразование переменной char to Cstring Setter Visual C++ 2 22.07.2008 01:51
W char и char как быстро и легко переходить от одного типа к другому impressionist C++ Builder 14 23.01.2007 14:12
Как прописать возвращение переменной char из функции. JuriS Вопросы начинающих программистов 1 22.09.2004 17:45
Объявление структур VC++ в VB? imported_Leon_ Visual Basic 0 21.07.2004 10:16
Добавление в конец char* добавить char. Anonymous Вопросы начинающих программистов 2 01.06.2004 23:00
Объявление функций 4you Visual Basic 1 23.04.2004 00:27
Объявление переменной в программе Anonymous Delphi 3 04.09.2003 15:18
Объявление глобальной переменной для MDI-приложений Albert MW Вопросы начинающих программистов 7 19.04.2003 13:57
Объявление переменных Stanis Laugh PHP 3 26.09.2002 19:57



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов