Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с динамической памятью (массив символов) 
V
    Опции темы
ioManip
Дата 23.2.2013, 03:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 12.8.2011
Где: Благовещенск

Репутация: нет
Всего: нет



Добрый день!

Ни как не могу понять, чего хочет от меня компилятор:
Код

main.cpp:9: error: expected primary-expression before '{' token
main.cpp:9: error: expected `;' before '{' token


Код

 const int size_n = 6,
             size_m = 11;
   
    char **chars = new char *[size_n];
    for( int i = 0; i < size_n; i++)
         chars[i] = new char [size_m];
  
    chars[size_n][size_m] =
   {
        { '#', '#', '#', '.', '.', '.', '?', '?', '.', '+', '.' },
        { '#', '#', '#', '.', '=', '.', '?', '?', '.', '+', '.' },
        { '#', '#', '#', '.', '.', '.', '.', '.', '.', '+', '.' },
        { '.', '.', '.', '.', '.', '.', '.', '.', '.', '=', '=' },
        { '.', '.', '.', '.', '.', '.', '.', '.', '.', '=', '=' },
        { '.', '.', '.', '.', '.', '.', '#', '#', '#', '=', '=' }
   };
   
 
  for( int i = 0; i < size_n; i++ )
    {
      for( int j = 0; j < size_m; j++ )
        {
          cout << chars[i][j];
        }
        cout << endl;
    }
   

  for( int i = 0; i < size_n; i++)
       delete [] chars[i];
       delete [] chars;


Это сообщение отредактировал(а) ioManip - 23.2.2013, 03:55
--------------------
Мечты не работают, пока ты не работаешь! 
PM MAIL Skype   Вверх
feodorv
Дата 23.2.2013, 05:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(ioManip @  23.2.2013,  04:54 Найти цитируемый пост)
Ни как не могу понять, чего хочет от меня компилятор:

Какой Вы хитрый))) Так инициализация chars не пройдет. chars задана как char**, поэтому 
Цитата(ioManip @  23.2.2013,  04:54 Найти цитируемый пост)
    chars[size_n][size_m] =

есть присвоение одного элемента (причём за пределами выделенной памяти), а не инициализация всей матрицы. 


Тут либо
Код

   char chars[size_n][size_m] =
   {
        { '#', '#', '#', '.', '.', '.', '?', '?', '.', '+', '.' },
        { '#', '#', '#', '.', '=', '.', '?', '?', '.', '+', '.' },
        { '#', '#', '#', '.', '.', '.', '.', '.', '.', '+', '.' },
        { '.', '.', '.', '.', '.', '.', '.', '.', '.', '=', '=' },
        { '.', '.', '.', '.', '.', '.', '.', '.', '.', '=', '=' },
        { '.', '.', '.', '.', '.', '.', '#', '#', '#', '=', '=' }
   };

но тогда без явного выделения памяти под массив, либо
Код

    char **chars = new char *[size_n];
    for( int i = 0; i < size_n; i++)
         chars[i] = new char [size_m];
  
   char ichars[size_n][size_m] =
   {
        { '#', '#', '#', '.', '.', '.', '?', '?', '.', '+', '.' },
        { '#', '#', '#', '.', '=', '.', '?', '?', '.', '+', '.' },
        { '#', '#', '#', '.', '.', '.', '.', '.', '.', '+', '.' },
        { '.', '.', '.', '.', '.', '.', '.', '.', '.', '=', '=' },
        { '.', '.', '.', '.', '.', '.', '.', '.', '.', '=', '=' },
        { '.', '.', '.', '.', '.', '.', '#', '#', '#', '=', '=' }
   };

  for( int i = 0; i < size_n; i++ )
     for( int j = 0; j < size_m; j++ )
        chars[i][j] = ichars[i][j];

В любом случае, значения size_n и size_m должны оставаться 6 и 11, иначе испортится инициализация массива. То есть для случая 6x11 матрица правильно проинициализируется, для других значений - уже неправильно, а то и не скомпилируется вовсе (если задать меньшие размеры).

Это сообщение отредактировал(а) feodorv - 23.2.2013, 14:42


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
bsa
Дата 23.2.2013, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



feodorv, только зачем int?
PM   Вверх
ioManip
Дата 23.2.2013, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 12.8.2011
Где: Благовещенск

Репутация: нет
Всего: нет



Цитата(bsa @ 23.2.2013,  08:28)
feodorv, только зачем int?

И правда? Может быть, fedorev, Вы опечатались? 
--------------------
Мечты не работают, пока ты не работаешь! 
PM MAIL Skype   Вверх
feodorv
Дата 23.2.2013, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(ioManip @  23.2.2013,  13:06 Найти цитируемый пост)
И правда? Может быть, fedorev, Вы опечатались?  

Скорее одумался))) Конечно, char.


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
ioManip
Дата 24.2.2013, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 162
Регистрация: 12.8.2011
Где: Благовещенск

Репутация: нет
Всего: нет



Спасибо!  smile 
--------------------
Мечты не работают, пока ты не работаешь! 
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0727 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.