Вы не можете определить размер массива только по указателю, как вы пытаетесь сделать в цикле for вашей operator<
функции ... В какой-то момент вам придется передать вразмер массива, на который указывает data
, чтобы вы не переполняли границы массива, на который указывает data
.Поскольку data
является указателем, sizeof(data)
просто возвращает размер указателя на вашей платформе, а не размер массива, на который указывает data
.
Для C ++, вместо использования выделенногомассив, вы можете использовать контейнер STL, который вы можете напрямую запросить размер объекта контейнера ... это может включать std::string
, если это строковые данные, или std::vector<unsigned char>
, если это просто набор двоичных байтов.