Запись hex в бинарный файл, c++

Мне надо записать данный hex-код в бинарный файл. Я уже когда-то писал похожую программу, но сейчас, когда пытаюсь, перенести этот код в другой проект возникает ошибка: вместо данного кода в hex многократно записывается один и тот же байт (каждый раз разный):

Результат записи в хекс

При этом, если писать в старом старом решении, всё будет работать отлично. В чём может быть проблема?

Код, который используется для сохранения файла:

FILE* ptr = fopen(output_path.c_str(), "wb");
char* c = new char[2];

for (size_t i = 0; i < hex_str.size(); i += 2)
{
    input = "";
    input += hex_str[i];
    input += hex_str[i + 1];
    input = strtol(input.c_str(), &c, 16);
    fwrite(&input, 1, 1, ptr);
}
fclose(ptr);

Пытался найти разницу в настройках между старым и новым решениями, но при изменениях появлялись новые ошибки.

Так же буду рад, если найдутся альтернативные записи string в hex, но очень интересно, почему именно это решение работает не везде.

Значения переменной input точно изменяется, вот часть вывода перед преобразованием в hex-формат:

Перед преобразованием в hex-формат

и после преобразования в hex-формат:

После преобразования


Ответы (1 шт):

Автор решения: SuperPizza303

В комментариях помогли разобраться с вопросом. Код заработал при замене строки

fwrite(&input, 1, 1, ptr);

на

fwrite(input.c_str(), 1, 1, ptr);
→ Ссылка