Проблема с памятью при использовании структур 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

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