Выделение памяти игнорирует участника массива с переменными границами
Неправильное употребление структуры с участником массива с переменными границами происходит когда:
Вы задаете объект с членом массива с переменными границами неизвестного размера во время компиляции.
Вы делаете присвоение между структурами с участником массива с переменными границами, не используя memcpy()
или подобная функция.
Вы используете структуру с участником массива с переменными границами в качестве аргумента к функции и передаете аргумент значением.
Ваша функция возвращает структуру с участником массива с переменными границами.
Участник массива с переменными границами не имеет никакого заданного размера массивов и является последним элементом структуры по крайней мере с двумя именованными участниками.
Если размер участника массива с переменными границами не задан, он проигнорирован при выделении памяти для содержания структуры. Доступ к такой структуре имеет неопределенное поведение.
Используйте malloc()
или подобная функция, чтобы выделить память для структуры с участником массива с переменными границами.
Используйте memcpy()
или подобная функция, чтобы скопировать структуру с участником массива с переменными границами.
Передайте структуру с участником массива с переменными границами как аргумент функции указателем.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: на |
Синтаксис командной строки:
FLEXIBLE_ARRAY_MEMBER_STRUCT_MISUSE
|
Удар: низко |