Как создать и использовать структуру с помощью стека, заканчивающуюся гибким элементом массива C99 в C ++ без неопределеC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как создать и использовать структуру с помощью стека, заканчивающуюся гибким элементом массива C99 в C ++ без неопределе

Сообщение Anonymous »

Я называю 3-й стороны библиотеки C99 из Modern C ++. API содержит структуру, которая заканчивается гибким массивом. Чтобы выделить структуру на стеке, я думаю, что мне нужен байтовый буфер, а затем поднять его в структуру.

Код: Выделить всё

#include 
#include 

// 3rd-part C99 API
extern "C" {
struct Foo {
int length;
int array[];
};

void do_something(struct Foo*);
}

// My C++ code
auto bar() {
auto length = 4;
std::byte buffer[sizeof(Foo) + length * sizeof(int)];
auto &foo = *reinterpret_cast(buffer); // ← Is this UB?
foo.length = length;
do_something(&foo); // ← Is this UB?
std::println("Result: {}", foo.array[3]); // ← Is this UB?
}
Редактировать: я компилируюсь с -std = gnu ++ 23 так>

Подробнее здесь: https://stackoverflow.com/questions/797 ... xible-arra
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Структура Python ctypes с гибким элементом массива для bytearray
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Структура Python ctypes с гибким элементом массива для bytearray
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Структура Python ctypes с гибким элементом массива для bytearray
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как предотвратить расширение абзаца, который также является гибким элементом, на всю ширину? [дубликат]
    Гость » » в форуме CSS
    0 Ответы
    26 Просмотры
    Последнее сообщение Гость
  • Как вертикально выровнять текст внутри элемента

    , который является гибким элементом [дубликат]

    Anonymous » » в форуме Html
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»