Я разработал небольшую вспомогательную функцию для класса модульного тестирования, которая берет мой vector
и преобразует его обратно в a const char *
. Я написал это, чтобы передать его макросу gtest ASSERT_STREQ
для простого сравнения. Вот он:
const char * convertVecToChar(std::vector<unsigned char>& source)
{
std::vector<unsigned char>::size_type size = source.size();
char* data = (char*)malloc(sizeof(char) * (size + 1));
memcpy(data, &source[0], size);
data[size] = 0;
return data;
}
И вот пример его вызова:
ASSERT_STREQ("de", convertVecToChar(somevector));
Я предполагаю, что это негерметично, однако, поскольку я вызываю malloc
, но без вызова delete
ниже дорога?
Есть ли более элегантный способ сделать это, который не требует создания отдельной переменной const char *
для каждого вызова ASSERT_STREQ
в тестовом методе?
Заранее всем спасибо за ответы.
Крис