Существует одно существенное различие между ссылками и вашим собственным кодом: они используют sizeof
, а вы используете strlen
. strlen
ищет в памяти нулевой байт. Это имеет смысл, только если у вас действительно строка символов с нулевым символом в конце.
Здесь вы хотите сохранить целочисленные данные, независимо от того, содержат ли они нулевые байты или нет. Поэтому вы должны объявить размер этих данных равным sizeof(int)
:
rocksdb_put(db,writeoptions,key,sizeof(int),value,sizeof(int),&err);