Описание тега flexible-array-member

Гибкие элементы массива - это функция C, представленная в C99, посредством которой можно объявить последний элемент массивом неопределенного размера.
2 ответа

Объявление неструктурированного массива в структуре

Почему C позволяет это: typedef struct s { int arr []; } s; где массив arr размер не указан?
26 ноя '13 в 15:19
2 ответа

Нарушение доступа к записи в динамическом массиве C++

Это беспокоило меня почти 2 дня. В моем определении класса есть двумерный динамический массив: class Raster { public: int pixels[][4]; void drawTriangle(Vector2f & V1, Vector2f & V2, Vector2f & V3, PixelColor & colorA, PixelColor &am…
02 фев '18 в 04:16
7 ответов

Использование членов гибкого массива в C плохая практика?

Я недавно прочитал, что использование гибких элементов массива в C было плохой практикой разработки программного обеспечения. Однако это утверждение не было подкреплено никакими аргументами. Это признанный факт? ( Гибкие члены массива - это функция …
1 ответ

Член гибкого массива во вложенной структуре

Это допустимый код C, чтобы иметь гибкие члены массива внутри вложенных структур? Так гарантированно ли мой пример кода ниже для нормальной работы компилятора? #include <stdio.h> #include <stdlib.h> struct d { char c; int ns[]; }; struct…
30 мар '15 в 19:39
0 ответов

Как я могу скомпилировать QMap без элемента гибкого массива в inotify_event, вызывающего ошибку сборки?

Я собираю Qt 4.6.4 из исходного кода для проекта. Я на Fedora 27 с выпуском ядра 4.14.6. Когда я пытаюсь бежать makeЯ получаю следующие ошибки в QMap: In file included from /usr/include/features.h:423:0, from /usr/include/bits/libc-header-start.h:33…
15 мар '18 в 18:36
3 ответа

Каковы реальные преимущества гибкого члена массива?

После прочтения некоторых сообщений, связанных с членом гибкого массива, я все еще не до конца понимаю, зачем нам нужна такая функция. Возможный дубликат: Гибкие члены массива в C - плохо? Является ли это гибким элементом массива в C? (Вини меня, ес…
01 дек '13 в 08:24
4 ответа

Структура, которая содержит массив массивов символов

Я пытаюсь определить экземпляр структуры, и у меня возникли особые проблемы с установкой этой переменной. Это массив массивов символов. Вот моя структура в моем заголовочном файле... struct widget_t { char *name; uint8_t numberOfNicknames; char *nic…
16 янв '19 в 07:58
1 ответ

Размер структуры с гибким членом массива

Дано struct Foo { uint32_t a; uint32_t b[]; }; Что такое sizeof(Foo)? Это определяемое реализацией или неопределенное поведение? Отличается ли ответ для C против C++?
19 июл '17 в 14:43
3 ответа

Добавление элементов в члены Flexible Array

Я прочитал и посмотрел на пример гибких элементов массива, но я не совсем уверен, как добавить и прочитать элементы этого массива переменной длины. typedef struct School{ char *name; char *courses[]; //Flexible Array Member }School; 1) Может кто-ниб…
24 янв '16 в 00:27
2 ответа

Действительно ли нужны члены гибкого массива?

Структура с гибким членом массива, по-видимому, не предназначена для объявления, а скорее используется вместе с указателем на эту структуру. При объявлении члена гибкого массива должен быть хотя бы один другой член, и член гибкого массива должен быт…
01 авг '13 в 18:25
1 ответ

Как разделить и использовать кучную память, выделенную в массовом порядке с помощью Rust?

В последнее время я много читал о Rust, но все еще только начинаю окисляться. Мой мозг сохраняет большинство своих рефлексов C/C++, так что извините, если этот вопрос не актуален из-за того, как все происходит в Rust. Можно ли вообще (желательно?) В…
5 ответов

Массив нулевой длины

Я работаю над рефакторингом какого-то старого кода и нашел несколько структур, содержащих массивы нулевой длины (ниже). Предупреждения подавлены прагмой, конечно, но я не смог создать "новые" структуры, содержащие такие структуры (ошибка 2233). Масс…
17 ноя '08 в 06:54
2 ответа

Выделите память для гибкого массива в структуре

Я пытаюсь выделить память для структуры, используя flexarray. Я получил это таким образом, и я должен реализовать это следующим образом. Структура выглядит так: struct _XPM { unsigned int width; unsigned int height; unsigned char cpp; unsigned int n…
26 фев '14 в 22:13
2 ответа

Использование самой структуры в определении структуры в C++

Я хочу реализовать простую структуру дерева в C++, например: struct node{ .... node* parent; node[]* children; .... }; но компилятор сообщил об ошибке (как CLang++, так и G++) error: expected unqualified-id before '[' token node[]* child; ^ error: e…
15 апр '14 в 06:07
1 ответ

Ошибка: недопустимое использование члена гибкого массива

Я не знаю, почему этот код дает эту ошибку. Что я должен делать? Ошибка заключается в следующем: Неправильное использование члена гибкого массива на этой линии: new_buffer->array_msg =array; вот если больший раздел кода: typedef struct buffer { i…
27 ноя '13 в 10:13
1 ответ

Портативная альтернатива для упакованных структур с гибким элементом массива

Предположим, мы писали сетевое приложение на C++ с использованием сокетов UDP. Нам нужно было передать небольшой пакет данных, поэтому мы использовали такую ​​структуру, чтобы убедиться, что порядок байтов является сетевым: struct [[gnu::packed]] da…
18 май '17 в 14:20
2 ответа

Следует ли использовать макросы вместо членов гибкого массива?

Давайте предположим следующее: Я хотел бы создать структуру для пакетов UDP. Каждый кадр обычно состоит из заголовка Ethernet, заголовка IP, заголовка UDP и необязательной полезной нагрузки, за которой следует, наконец, FCS (последовательность контр…
14 дек '18 в 19:59
2 ответа

Objective-C EXEC_BAD_ACCESS при использовании массивов гибкой длины

Я провел некоторое тестирование поведения, которое обнаружил, и мне было интересно, может ли кто-нибудь помочь мне понять, что происходит. У меня есть структура под названием myStructэто выглядит так: typedef struct { int size; float floats[]; } myS…
2 ответа

Выделение непрерывной памяти для размещения нескольких структур с гибкими элементами массива

Рассмотрим структуру, содержащую гибкий член массива, например: typedef struct { size_t len; char data[]; } Foo; У меня есть неизвестное количество Foos, каждый из которых имеет неизвестный размер, однако я могу быть уверен, что все мои Foos вместе …
11 фев '19 в 00:57
2 ответа

Использование гибкого элемента массива с mmap

У меня проблемы с доступом к глобальному указателю структуры, который я инициализирую с помощью mmap. Попытка получить доступ к членам структуры в функциях вне той, которая объявлена ​​в throw segfaults. структура: typedef struct foo { uint32_t size…