Вопросы по теме 'void-pointers'

Концепция пустого указателя в программировании на C
Можно ли разыменовать указатель void без преобразования типов в языке программирования C? Кроме того, есть ли способ обобщить функцию, которая может получать указатель и сохранять его в указателе void, и, используя этот указатель void, можем ли мы...
208550 просмотров
schedule 26.07.2022

Безопасно ли удалять пустой указатель?
Предположим, у меня есть следующий код: void* my_alloc (size_t size) { return new char [size]; } void my_free (void* ptr) { delete [] ptr; } Это безопасно? Или ptr нужно преобразовать в char* перед удалением?
63121 просмотров

Построение функции python, вызываемой из C, с входным параметром, имеющим семантику *output*
Вариант использования следующий: Учитывая (фиксированную, неизменяемую) DLL, реализованную на C Требуется: оболочка для этой DLL, реализованная на python (выбранный метод: ctypes) Некоторым функциям DLL нужны примитивы синхронизации....
1811 просмотров
schedule 11.02.2023

Создание экземпляра структуры из буфера указателя void
Вот код на C++, который мне кажется забавным, но я знаю, что он работает. Определена структура, и в программе мы выделяем память с помощью указателя void. Затем структура создается с использованием выделенного буфера. Вот код typedef...
1383 просмотров

Является ли приведение целочисленного значения к void* часто используемой парадигмой в обратных вызовах?
Вместо того, чтобы отправлять фактический указатель на значение, значение приводится к указателю. Я нашел эти примеры в коде интерфейса GUI программы GTK. g_signal_connect (pastebutton[pane], "clicked",...
516 просмотров

Указатель пользователя Ncurses
Я пытаюсь изучить ncurses и читаю потрясающее руководство здесь , но пример с указатели пользователей не компилируется. Я получаю эту ошибку, когда пытаюсь скомпилировать. menu.cpp: In function 'int main()': menu.cpp:44: error: invalid...
1316 просмотров
schedule 11.07.2022

Каков правильный способ приведения при использовании ATL и IUnknownPtr?
Во время модификации существующего COM-объекта ATL я наткнулся на статью из блога «The Old New Thing» под названием «Как люди путают IUnknown::QueryInterface», и в разделе комментариев было обсуждение, которое началось, когда один из респонденты...
2006 просмотров
schedule 03.02.2023

Приведение void* к NSString* без stringWithCString
У меня есть программа, которая взаимодействует со связкой ключей. Вы передаете указатель на указатель void, и цепочка для ключей направляет его, я думаю, на пароль, вы также передаете указатель UInt32, и он будет указывать на длину пароля. Затем...
2606 просмотров

указатели boost::variant и void*
Мне нужен вариантный тип, который содержит экземпляры любого определяемого пользователем класса. Поэтому я использую void*: typedef boost::variant<void*, int, float, std::string> Tvariant; Я создал класс-оболочку с картой: typedef...
2056 просмотров
schedule 09.09.2022

Как я могу заменить указатель void чем-то, что имеет проверку типа времени компиляции в этом обратном вызове?
Я пытаюсь создать систему событий с уведомлениями через обратные вызовы. У меня есть написанный код, но он зависит от указателей void для работы. После того, как жесткие указатели void укусили меня в моем последнем проекте, я хотел бы заменить...
1619 просмотров
schedule 06.11.2022

Кто-нибудь может объяснить, что это означает? недействительным (* функция) ();
У меня есть структура, в которой есть элемент, обозначенный как void (*func)(); . Я знаю, что указатели void обычно используются для указателей на функции, но я не могу определить функцию. Я продолжаю получать dereferencing pointer to incomplete...
1778 просмотров

Что такое указатель void в C++?
Возможный дубликат: Что такое пустой указатель и нулевой указатель? Я часто вижу код, похожий на следующий: void * foo(int bar); Что это значит? Означает ли это, что он может вернуть что угодно ? Это похоже на dynamic или...
113961 просмотров
schedule 15.07.2022

Как проверить, можно ли безопасно привести указатель void* к чему-то другому?
Скажем, у меня есть эта функция, которая является частью некоторого инструментария графического интерфейса: typedef struct _My_Struct My_Struct; /* struct ... */ void paint_handler( void* data ) { if ( IS_MY_STRUCT(data) ) /* <-- can I do...
8219 просмотров
schedule 19.02.2023

Вектор указателей на экземпляры шаблонного класса
Я реализую систему выполнения задач, которая поддерживает буферы для пользовательских объектов различных типов. Кроме того, все объекты оборачиваются перед сохранением в буферах. Поскольку среда выполнения не знает типы объектов, которые предоставит...
927 просмотров
schedule 12.12.2022

Взаимодействие между классами iOS NSObject и UIViewController
У меня есть два класса: class1, который является NSObject, и class2, который является UIViewController... Из UIViewController я отправил что-то в class1, чтобы заставить его выполнить действие: [class1 doVoidAction]; и в классе 1 у меня есть:...
567 просмотров

Boost.Python: заполнить переданный буфер в Python
Мне было интересно, можно ли заполнить буфер (со следующими условиями) в Python, и если да, то как? У меня есть буфер на C++, который мне нужно заполнить на Python. Адрес буфера получается с помощью метода GetAddress , который возвращает...
1091 просмотров

Передача произвольных данных в функцию без пустых указателей
Я работаю с абстрактным базовым классом, реализующим набор системных тестов. В упрощенном виде объявление класса выглядит так: class Test_Class { Test_Class(); ~Test_Class(); Run_Test(void * param_set = NULL) = 0; } Базовый...
709 просмотров
schedule 09.04.2023

Есть ли в C общий указатель на тип указателя?
Например, если бы я хотел написать «бесплатно», обнуляющий указатель, я мог бы написать что-то вроде: void myfree(void **data) { free(*data); *data = NULL; } однако, когда я пытаюсь написать это, я получаю предупреждение компилятора...
299 просмотров
schedule 12.02.2024

Проблемы с изменением значения указателя void в C
В основном моя проблема в том, что я пытаюсь изменить значение внутри переменной valor , чтобы после вызова функции cambiar_valor оно изменилось на 25. Но моя проблема в том, что оно вообще не меняется. Что я здесь делаю неправильно? Я пытаюсь...
3096 просмотров
schedule 29.10.2022

Что означает объявление void** на языке C?
Я начинаю изучать C и читаю следующий код: public void** list_to_array(List* thiz){ int size = list_size(thiz); void **array = malloc2(sizeof(void *) * size); int i=0; list_rewind(thiz); for(i=0; i<size; i++){...
5443 просмотров
schedule 16.05.2023