void-pointers

У меня есть структура, определенная как: typedef struct { int type; void* info; } Data; И затем у меня есть несколько других структур, которые я хочу назначить void*, используя следующую функцию: Data* insert_data(int t, void* s) { Data * d = (Data*)malloc(sizeof(Data)); d->type = t; ...

Допустим, у меня есть эта функция, которая является частью некоторого инструментария gui: typedef struct _My_Struct My_Struct; /* struct ... */ void paint_handler( void* data ) { if ( IS_MY_STRUCT(data) ) /* <-- can I do something like this? */ { My_Struct* str = (My_Struct*) data; } } /...

Я прошел через этот вопрос - Почему результат: 1 ? (int *)0 : (void *)0 отличается к результату : 1 ? (int *)0 : (void *)1 Чем это отличается ? Это должно быть 0 или (int*)0. Как проверить результат ? где мы можем использовать такой тип выражения ?...

Как вывести переменную wchar_t * из аргумента функции void ** в этой ситуации? Я хочу вставить значение t в переменную ChangeMe с помощью void**, как это сделать? void foo(void **v){ wchar_t *t = L"String is changed!"; *(wchar_t*)v = *t; } wchar_t *ChangeMe = L""; Попробуйте уже (не работает): foo((voi...

Итак, если вы это сделаете: void *ptr = NULL; , что является лучшим способом, чтобы проверить, если указатель имеет значение null? Мой обходной путь на данный момент таков: if (*(void**)ptr == NULL) ... Но это не кажется лучшим способом, поскольку я неявно предполагаю, что ptr имеет тип void** (чего...

Дает ли C void* какую-то выгоду в виде оптимизации компилятора и т. д., Или это просто идиоматический эквивалент для char*? Т. е. если каждый void* в стандартной библиотеке C будет заменен на char*, будет ли что-нибудь повреждено, кроме разборчивости кода?...

Я просто пытался использовать указатель void на целочисленный массив, я пытался увидеть, могу ли я распечатать массив обратно, приведя его обратно в int. Но это дает мне некоторую случайную ценность. Можете ли вы сказать мне, где я ошибаюсь? #include<stdio.h> #include<stdlib.h> int main(){ i...

в чем разница между id и void *?...

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

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