Flexible array member not at end of struct - C (СИ)
Формулировка задачи:
Вот такой код:
Ошибка вот такого содержания:
Почему? В Чем проблема?
typedef struct q_query {
char query[]; //тут ошибка
short past_time;
short count;
} dQuery;C:\MyLang\C\db\mainvar.h|2|error: flexible array member not at end of struct|
Решение задачи: «Flexible array member not at end of struct»
textual
Листинг программы
struct some *ptr = malloc(sizeof(struct some) + n * sizeof(short)); //... struct some wrong_copy = *ptr;
Объяснение кода листинга программы
- Объявляется структура
someс гибким массивомarray(предполагается, чтоarrayможет содержать переменное количество элементов). - Создается указатель
ptrна структуруsome. - С помощью функции
mallocвыделяется память под структуруsomeиnэлементов массиваarray(предполагается, чтоnизвестно на этапе компиляции). - Создается копия структуры
someс именемwrong_copyиз указателяptr. - ... (код не предоставлен)