Я изменяю некоторый код, обнаруженный внутри объекта C ++.Сообщение является классом C ++.
Исходная строка кода выглядит следующим образом:
unsigned char fifoQueue[256 * sizeof(Message)] = {0};
Поскольку я помещаю его в объект, я делаю это:
///in header
unsigned char fifoQueue;
///in object initializer
fifoQueue = new unsigned char[256 * sizeof(Message)];
Каким-то образомЯ не думаю, что это правильно.Какая правильная реализация, чтобы получить тот же результат?Я просто немного запутался в том, как это работает - в приведенном примере fifoQueue - это указатель на область памяти, правильно?Должен ли мой объект иметь переменную экземпляра fifoQueue в качестве указателя на массив «Message», вместо этого?
Спасибо!
/////// Хорошо, я добавляю некоторую информацию здесьэто имеет отношение к тому, как это используется.Извините, что не включили это раньше.
Существует метод, который обращается к этому значению в качестве указателя и увеличивает его в зависимости от местоположения чтения / записи.Поэтому мне нужен новый инициализатор, чтобы этот метод работал правильно.
Message* Fifo::getMessageToWrite(){
Message* base = (Message*)fifoQueue;
return new(base + (fifoWritePtr & 255)) Message();
}