Проблема с памятью при использовании структур C-Packed в [C++]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема с памятью при использовании структур C-Packed в [C++]

Сообщение Anonymous »

Я программировал программу на C++, чувствительную к памяти, которая пытается наложить вторичный тип данных [мою структуру] на больший буфер uint8_t*. Тем не менее, по какой-то причине структура «сходит с ума» после чтения 8 байт, а в остальных переменных после этих начальных 8 байтов остаются ненужные данные. Это известная проблема в памяти C/C++ или мой код не на должном уровне? Мне бы очень хотелось узнать больше о тонкостях памяти C! Ниже приведена структура и пример того, что я делаю:
struct __attribute__((packed)) Packet {
char[4] magic;
uint32_t offset;
uint32_t size;
}

Ниже приведен пример того, что я делаю для наложения вторичного типа данных.
int packetsPassed = 0;

Packet* overlay = (Header*)((uintptr_t)buffer + (uintptr_t)(sizeof(Packet) *
packetsPassed));


Подробнее здесь: https://stackoverflow.com/questions/798 ... ructs-in-c
Ответить

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

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

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

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

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