Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ошибка при определении массива

6.0K
25 мая 2004 года
ses343
5 / / 04.04.2004
Здравствуйте.

Есть следующий код:
#define BOARD_WIDTH 6
#define BOARD_HEIGHT 5
#define LAVEL_COUNT 1

typedef struct
{
UInt8 Field [BOARD_HEIGHT][BOARD_WIDTH];
UInt8 Width;
UInt8 Height;
} TBoard;

typedef struct
{
TBoard FirstBoard;
TBoard TargetBoard;
} TLavel;

extern TLavel Lavels[LAVEL_COUNT];

Lavels[0].FirstBoard.Width = 3;
Lavels[0].FirstBoard.Height = 2;

Lavels[0].TargetBoard.Width = 3;
Lavels[0].TargetBoard.Height = 2;

Lavels[0].FirstBoard.Field[0] = {1, 0, 5, 0, 0, 0};
Lavels[0].FirstBoard.Field[1] = {1, 1, 6, 0, 0, 0};

Lavels[0].TargetBoard.Field[0] = {0, 0, 6, 0, 0, 0};
Lavels[0].TargetBoard.Field[1] = {0, 0, 5, 0, 0, 0};

На каждую строчку, где стоит Lavels[0] выдается ошибка declaration syntax error.

Подскажите, в чем проблема.
443
25 мая 2004 года
REmindER
292 / / 23.03.2003
А ошибку "Array must have at least one element" случайно не выдает?
4.9K
26 мая 2004 года
mrhx
43 / / 04.04.2004
Цитата:
Originally posted by ses343
Здравствуйте.

Есть следующий код:
...
extern TLavel Lavels[LAVEL_COUNT];

Lavels[0].FirstBoard.Width = 3;
Lavels[0].FirstBoard.Height = 2;
...
На каждую строчку, где стоит Lavels[0] выдается ошибка declaration syntax error.

Подскажите, в чем проблема.



Маленький вопрос: А вот этот код - это прямо тот код, который стоит у тебя в начале файла??? Я это к тому, что всякие там присваивания должны быть внутри какой-либо функции... То есть вне функций нельзя присвоить элементу массива какое-то значение... Вот... То есть компилятор хочет там увидеть объявления функций, переменных и т.д., но ни как ни присваивания (конкретный код).

Надеюсь помог... :)

443
26 мая 2004 года
REmindER
292 / / 23.03.2003
Цитата:
Originally posted by mrhx


Маленький вопрос: А вот этот код - это прямо тот код, который стоит у тебя в начале файла??? Я это к тому, что всякие там присваивания должны быть внутри какой-либо функции... То есть вне функций нельзя присвоить элементу массива какое-то значение... Вот... То есть компилятор хочет там увидеть объявления функций, переменных и т.д., но ни как ни присваивания (конкретный код).

Надеюсь помог... :)


То, что я и имел в виду...

6.0K
26 мая 2004 года
ses343
5 / / 04.04.2004
Да спасибо.
Работает.
3
26 мая 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by mrhx


То есть вне функций нельзя присвоить элементу массива какое-то значение...



Присвоить нельзя, но вот проинициализировать можно.

Код:
TLavel Lavels[LAVEL_COUNT] = {
  { //Lavels[0]
    { //FirstBoard
        {// Field
            /*Field[0]=*/ {1, 0, 5, 0, 0, 0},
            /*Field[1]=*/ {1, 1, 6, 0, 0, 0}
        },
        /*Width=*/  3,
        /*Height=*/ 2
    },

    { //TargetBoard
        {// Field
            /*Field[0]=*/ {0, 0, 6, 0, 0, 0},
            /*Field[1]=*/ {0, 0, 5, 0, 0, 0}
        },
        /*Width=*/  3,
        /*Height=*/ 2
    }
  }
};
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог