Сегодня у меня вопрос о Qt и функции memcpy (). Я получил QByteArray i_byte_array , содержащий мои необработанные данные, которые мне нужны. Первое, что я попробовал, - скопировать эти данные в char * l_array . Это дает мне:
void blablafunctionblabla(const QByteArray& i_byte_array)
{
char* l_array = (char*)malloc(i_byte_array.size());
memcpy(l_array, i_byte_array, i_byte_array.size());
// OR: char* l_array = i_byte_array.data(); // same result
}
Когда я запускаю код, я ожидал скопировать все содержимое i_byte_array , которое: значения i_byte_array
В результате я получаю только это ...: l_array value
Кажется, копирование остановилось на первом / 0 , игнорируя размер, который я прошу его скопировать. .
Итак, мой вопрос: почему это происходит с функцией memcpy? И как мне продолжить, чтобы скопировать все необработанные данные? (даже / 0, что является для меня полезными данными)