У меня есть функция, которая должна возвращать двойной указатель, она должна возвращать адрес указателя на часть данных, которая в этом примере является символьным массивом
Исходные данные отправляются в качестве параметра в конструктор
Classname::Classname(void* fdata);
Затем он копируется в элемент данных void * с именем frame_data с помощью
frame_data = fdata;
Функция, которая возвращает двойной указатель, определяется как
void** Classname::data(){
return &frame_data;
}
Наконец, функция, которая позже вызывает data ()
std::sprintf(*(char**)classn.data(), "LOOP No: %d", loop);
И здесь программа segfaults. Очевидно, что-то не так, но я просто не уверен, в чем проблема. В этой программе строка sprintf не изменяется, как и тот факт, что data () возвращает двойной указатель, любая идея, где я ошибаюсь ?
Задача ещё не решена.
Других решений пока нет …