BlinCT
22 декабря 2022 г. 19:40

Правильное чтение данных строки Си методом

Всем привет.
Пытаюсь прочитать правильно данные строки и перенести в буфер для дальнейшего использования.
Но столкнулся с плохим пониманием места ошибки.

  1. uint8_t *PackNetwork::toByte(uint32_t &size)
  2. {
  3. uint8_t *dataBuffer = new uint8_t[header.size];
  4. memcpy(dataBuffer, &header, sizeof(packHeader));
  5.  
  6. uint32_t offset = sizeof(packHeader);
  7.  
  8. for (auto &item : dataList)
  9. {
  10. uint32_t sizeData = 0;
  11.  
  12. uint8_t *byteData = item->toByte(sizeData);
  13. memcpy(dataBuffer + offset, byteData, sizeData);
  14. offset += sizeData;
  15. }
  16.  
  17. size = header.size;
  18. return dataBuffer;
  19. }

После выполнения uint8_t *byteData = item->toByte(sizeData) в переменной byteData находится нужная мне строка. Но после выхода из цыкла return возвращает мне пустую строку.
Мог бы кто то мне указать на возможное место ошибки?
Если важно то offset имеет размер 32(размер структуры)
Заранее спасибо.

1

Вам это нравится? Поделитесь в социальных сетях!

0

Комментарии

Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь