Описание тега void-pointers

Указатель void (void *) в C и C++ - это указатель, указывающий на ячейку памяти без указанного типа.
1 ответ

Используйте указатель void для хранения чисел с плавающей точкой в ​​массиве

Я новичок в указателях, и это может быть глупым вопросом. Невозможно сохранить числа с плавающей точкой в ​​массиве с плавающей запятой. Ниже приведен код и вывод: Код: int main() { int size=5; float f_array[size]; populate(f_array, size); // printi…
13 ноя '17 в 20:43
3 ответа

Получить массив через функцию-параметр

У меня есть массив объявлен как Object array[N]; и функция как void GetArray(void** array, size_t count) { *array = array; *count = N; } Я пытаюсь вызвать функцию с этим кодом: size_t number; GetArray(XXX, &number); где XXX что я должен передать…
07 апр '11 в 17:03
1 ответ

Динамическая переменная типа с пустым указателем (в конечном итоге динамическое приведение типов) в C

Я только что пришел к вопросу с динамическим типом переменной (не совсем динамическим, но должен определяться во время выполнения), ситуация такова: У меня есть функция, которая принимает двойной массив, преобразует его в целое число и записывает в …
13 июн '18 в 09:44
3 ответа

Возвращаемое значение void * в функции

Мне дали функцию, возвращаемое значение которой void *, Мне нужно вернуть два значения из этой функции. void * studentsCount(int *Arr, int len, int score, int *lessCount, int *moreCount) { if (Arr == NULL || len <= 0) return NULL; for (int i = 0;…
20 июн '17 в 16:15
5 ответов

Сравнивать, если void * содержит 0 numbytes?

Мне нужен общий способ проверить, содержит ли void * от 0 до num_bytes. Я придумал следующий подход. *p не содержит данных одного и того же типа каждый раз, поэтому не может сделать *(type*)p bool is_pointer_0(void *p, int num) { void *cmp; cmp = (v…
17 сен '15 в 18:13
1 ответ

Доступ к указателю на символ в структуре, которая была приведена из пустого указателя

Я немного запутался по этому поводу: Моя функция fillData(void* db) должен быть передан указатель на структуру tdpatientProfile, который содержится в структуре tdWAKDAllStateConfigure как член по имени patientProfile, У меня есть только void Указате…
05 янв '12 в 17:36
1 ответ

Почему удаление void* является UB, а не ошибкой компиляции?

Зачем удалять объект через void* быть неопределенным поведением, а не ошибкой компиляции? void foo(void* p) { delete p; } Этот код компилирует и производит код, хотя и с предупреждением о gcc и clang (удивительно, что ICC не выдает предупреждение): …
2 ответа

Пустые указатели в связанном списке в C

У меня есть программа, которая имеет функцию, которая возвращает void * в структуру, но я думаю, что я что-то упускаю при приведении данных. Эта функция создает структуру, которая содержит строку и int. Строки считываются из файла. void * buildWord(…
2 ответа

Удаление пустого указателя в заголовках визуальной студии

Я нашел некоторые места в заголовках Visual Studio, где память освобождается через указатель на void. файл xlocnum: template<class _Elem> class numpunct : public locale::facet { _PROTECTED: _VIRTUAL __CLR_OR_THIS_CALL ~numpunct() { // destroy …
2 ответа

Проблема использования пустого указателя в качестве аргумента функции

Я не могу понять этот результат... Код: void foo(void * key, size_t key_sz) { HashItem *item = malloc(sizeof(HashItem)); printf("[%d]\n", (int)key); ... item->key = malloc(key_sz); memcpy(item->key, key, key_sz); } void bar(int num) { foo(&amp…
1 ответ

Что означает void*(*void)(void*)?

И какая разница между void*(*void)(void*) а также void*(*voi)(void*) а когда его использовать?
10 янв '16 в 16:37
7 ответов

Диапазон адресов указателя C на разных платформах

Обычной ситуацией при кодировании на C является написание функций, которые возвращают указатели. Если во время выполнения возникла какая-либо ошибка в написанной функции, может быть возвращено значение NULL для указания ошибки. NULL - это просто спе…
06 мар '13 в 00:03
1 ответ

Когда я использую ARC в проекте IOS, как я могу использовать void *?

Посмотрите этот метод: beginAnimations:context: Это метод класса UIView. Параметр контекста нуждается в типе void-указателя, и мне нужно отправить UIImageView в контекст. Я получаю предупреждение, в котором говорится, что void* запрещен при использо…
4 ответа

Как напечатать void * в функции и как получить доступ к переменной void * в функции?

Я пытаюсь передать функцию в качестве аргумента другой функции с void указатель и не работает #include "header.h" void print ( void *Arg ) { // while ( ( int *) Arg[0] ) { printf ( "Arg[0] = %d Arg[1] = %d\n",(int *) Arg[0], (int * ) Arg[1] ); sleep…
17 июн '15 в 11:44
3 ответа

Прототип функции с параметром void*

У меня есть две функции, каждая из которых принимает указатель на разные типы: void processA(A *); void processB(B *); Существует ли тип указателя на функцию, который мог бы содержать указатель на любую функцию без приведения? Я пытался использовать…
11 дек '13 в 18:17
2 ответа

Создание функции python, вызываемой из C, с входным параметром, имеющим семантику *output*

Вариант использования следующий: Учитывая (фиксированная, не изменяемая) DLL, реализованная в C Требуется: оболочка к этой DLL, реализованная в python (выбранный метод: ctypes) Некоторым функциям в DLL нужны примитивы синхронизации. Чтобы достичь ма…
11 дек '09 в 21:37
2 ответа

c: размер пустоты *

Я немного запутался с указателем void* на C. Особенно после прочтения этого вопроса: всегда ли sizeof (некоторый указатель) равен четырем? где один человек говорит, что нет гарантии, что sizeof(int *) == sizeof(double *) Мой вопрос: есть ли гарантия…
02 авг '11 в 07:37
3 ответа

C: правильно использовать арифметику указателей с void *

Предположим, у меня есть обертка вокруг функции memcpy-esque. В memcpyподпись функции (void *, void *, size_t size) где size = n_elements * sizeof(element), Я хотел бы, чтобы мой упаковщик также взял (void * dest, void * src, size_t size), Однако вн…
31 авг '18 в 19:37
1 ответ

Как написать функцию memcpy, полностью совместимую с MISRA:2012?

Я написал это memcpy функция, но мне все еще нужно отключить правила 11.5 и 11.8. Есть ли решение для полной совместимости с MISRA:2012? #pragma cstat_suppress="MISRAC2012-Rule-21.6" // Uses of stdio.h were found. #include <stdio.h> #include &…
10 окт '17 в 11:38
1 ответ

C Связанный список / стек с недействительными членами данных проблема

Поэтому я играл со стеками и создал общий файл Stack.h и файл Stack.c, которые определяют список и его функции соответственно, и когда я его пробую (stackdemo.c), он вылетает, когда я выхожу из списка. Я пытался с помощью void ** члены узла, проявля…
13 апр '14 в 00:16