Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2010, 20:26   #1
iLLUMIN
 
Регистрация: 22.11.2009
Сообщений: 4
По умолчанию init двумерного массива

господа, как правильно инициализировать двумерный массив при объявлении?
если быть точнее - из-за чего ошибка
Цитата:
error: array type has incomplete element type
при коде
Код:
const char arrA[][] = {
	{"  # "},
	{"#  #"},
	{"#  #"},
	{"####"},
	{"#  #"}
};
и как сие исправить?
iLLUMIN вне форума Ответить с цитированием
Старый 07.07.2010, 20:28   #2
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

const char array[][] = {
{' ', '#', ' ' },
...
};
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 07.07.2010, 20:30   #3
wyvern
Форумчанин
 
Аватар для wyvern
 
Регистрация: 24.03.2009
Сообщений: 215
По умолчанию

Вечер, туплю уже((
del
wyvern@localhost:~$ sudo emerge --unmerge world

Последний раз редактировалось wyvern; 07.07.2010 в 20:35.
wyvern вне форума Ответить с цитированием
Старый 07.07.2010, 20:32   #4
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Вы уж выбирите, или так:
Код:
const char arrA[][] = 
{
      {' ', ' ', '#', ' '},
      {'#', '  ', ...},
      ...
};
или так:
Код:
const char arrA[][] = {"  # ", "#  # ", ...};
Смесь не компилируется
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Syuf; 07.07.2010 в 20:43.
Syuf вне форума Ответить с цитированием
Старый 07.07.2010, 20:32   #5
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Вы уж выбирите, или так:
Код:
const char arrA[][] = 
{
      {' ', ' ', '#', ' '},
      {'#', '  ', ...},
      ...
};
или так:
Код:
const char arrA[][] = {"  # ", "#  # ", ...};

Глючит комп слегка...
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."

Последний раз редактировалось Syuf; 07.07.2010 в 20:43.
Syuf вне форума Ответить с цитированием
Старый 07.07.2010, 20:38   #6
iLLUMIN
 
Регистрация: 22.11.2009
Сообщений: 4
По умолчанию

хм...черт. глупо вышло.
благодарю, ozo, Syuf
iLLUMIN вне форума Ответить с цитированием
Старый 07.07.2010, 23:39   #7
pproger
C++ hater
Старожил
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

не понял.... а размерность строк уже не надо указывать? вышел новый стандарт языка? я что то пропустил?

ладно у отвечающих псевдокод (вроде), но у автора то конкретный код. может он так и пишет?)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance

Последний раз редактировалось pproger; 07.07.2010 в 23:47.
pproger вне форума Ответить с цитированием
Старый 08.07.2010, 00:01   #8
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

При инициализации - не нужно, компилятор сам всё сделает.
Код:
#include <iostream>
#include <cstring>

int main(){
    const int ARRAY_LENGTH = 4;
    char array[ ARRAY_LENGTH ] = "olo";
    std::cout << array << '\n';
    std::cout << ARRAY_LENGTH << '\n';
    char new_array[] = "olo";
    std::cout << new_array << '\n';
    std::cout << std::strlen( new_array ) + 1 /* \0 еще, не забываем*/ << '\n';
}
Но опять же, указывать размер при инициализации желательней :
компилятор матюгнется, если элементов больше, чем задумывалось + у нас есть константы с размерами массива.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 08.07.2010, 00:15   #9
pproger
C++ hater
Старожил
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2ozo
я про двумерные массивы! размерность строк
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 08.07.2010, 00:18   #10
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Аналогичная ситуация, только в двухмерии, смысл в том, что компилятор сам подбирает размер под количество аргументов.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка двумерного массива tema001 Помощь студентам 6 30.12.2009 19:33
Сортировка двумерного массива Расим Помощь студентам 7 15.12.2009 22:29
Сортировка двумерного массива в С(Си) savra Помощь студентам 5 26.11.2009 10:47