@PavelG94

Почему компилятор ругается на массив, размерность которого задается статической константой?

Здравствуйте, объявляю следующую структуру:
struct Packet
{
    static const int bytes_for_content; //определяется в соотв-ем cpp файле
//...
    char content[bytes_for_content]; //это компилятору и не понравилось
};

Подскажите, что не так.
  • Вопрос задан
  • 576 просмотров
Пригласить эксперта
Ответы на вопрос 3
Ocelot
@Ocelot
Размер полей структуры определяется во время компиляции, а значение константе присваивается во время выполнения программы, вот и ругается. Используйте #define для таких вещей.
Ответ написан
Olej
@Olej
инженер, программист, преподаватель
struct Packet
{
    static const int bytes_for_content; 
//...
    char content[bytes_for_content]; //это компилятору и не понравилось
};
const int Packet::bytes_for_content = 100;

Как-то так компилятору должно понравиться. ;-)
Ответ написан
@PavelG94 Автор вопроса
Всем спасибо за участие, хотя по правде в этой теме я до конца так и не разобрался и в своей программе для констант использовал анонимный enum.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы