Небольшая непонятка со структурами

Рейтинг: 0Ответов: 1Опубликовано: 01.07.2011

Есть у меня структура, допустим struct ZKN. В ней хранятся чары/инты, не важно.
И захотелось мне сделать 12 таких структур. И тут возник странный глюк (может я просто чего не знаю).
Если после определения структуры сразу написать zkn[11], т.е.

struct ZKN
{
...
} zkn[11];

то всё работает нормально. Но стоит мне объявить стируктуру, и в main написать ZKN zkn[11]; компилятор уже ПОСЛЕ выполнения программы, при том успешного, будет ругаться.
Это он ругается из-за неправильного выделения памяти, или что? И почему тогда сразу после структуры если объявить, то норм, а в main не норм.
Плюс в книге по C++ объявляют что в main, что сразу после структуры - им всё равно. Как так?

Ответы

▲ 8Принят

В книге правильно написано, что объявлять переменную zkn можно где угодно. Только нужно делать это правильно, если Вам нужно 12 структур, то почему объявляете их 11?

Должно быть:

ZKN zkn[12];

А ошибка скорее всего связана с выходом за пределы массива, если вы просматриваете 12 элементов массива, в котором их только 11.