LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Совсем не знаю что такое bluez и что такое пин.

Но из голого Си - у вас тут

val = g_key_file_get_string
и потом
main_opts.defaultpin = val
. Если посмотреть в определение функции g_key_file_get_string, то оно возвращает gchar*, которое объявлено как char*.
Но даже если вы объявите свой defaultpin как gchar* (что формально будет правильно с точки зрения типов) - это будет наверняка неправильно с точки зрения логики. Надо смотреть внутрь реализации g_key_file_get_string чтобы точно знать указатель на что именно оно возвращает (не общий ли там буфер библиотеки, в частности), или, если лень разбираться - сразу делать memcpy из возвращаемого буфера в свое собственное место для него в defaultpin (который должен быть char[4], если я правильно понимаю что пин это нечто из 4х символов).

Ну и по этому поводу очень хочется ввернуть что-нибудь едкое для ненавистников венгерской нотации. Была бы тут венгерка - не было бы этого вопроса. Мне так кажется.

Исходная версия Deleted, :

Совсем не знаю что такое bluez и что такое пин.

Но из голого Си - у вас тут

val = g_key_file_get_string
и потом
main_opts.defaultpin = val
. Если посмотреть в определение функции g_key_file_get_string, то оно возвращает gchar*, которое объявлено как char*.
Но даже если вы объявите свой defaultpin как gchar* (что формально будет правильно с точки зрения типов) - это будет наверняка неправильно с точки зрения логики. Надо смотреть внутрь реализации g_key_file_get_string чтобы точно знать указатель на что именно оно возвращает (не общий ли там буфер библиотеки, в частности), или, если лень разбираться - сразу делать memcpy из возвращаемого буфера в свое собственное место для него в defaultpin (который должен быть char[4], если я правильно понимаю что пин это нечто из 4х символов).

Ну и по этому поводу очень хочешь ввернуть что-нибудь едкое для ненавистников венгерской нотации. Была бы тут венгерка - не было бы этого вопроса. Мне так кажется.