Свързани въпроси 'void-pointers'

Генеричност срещу безопасност на типа? Използване на void* в C
Идвайки от OO (C#, Java, Scala) ценя много високо принципите както на повторното използване на кода, така и на безопасността на типа. Аргументите на типа в горните езици вършат работа и позволяват общи структури от данни, които са едновременно...
6439 изгледи
schedule 26.09.2022

Прехвърляне на празен указател към произволен тип указател
Опитвам се да направя своя собствена реализация на общи структури от данни в C за моя собствена полза от обучението. Сегашното ми усилие е вектор и искам той да може да поддържа един произволен тип (или поне размер на типа, но не е ли това всичко,...
3044 изгледи
schedule 15.09.2022

Динамичен масив с празен указател
И така, изучавайки указатели в C и си помислих, че като упражнение мога да направя някакъв общ масив и го накарах да работи, когато използвам void** по този начин: struct array{ void **data; size_t size, capacity; }; вмъкване на...
1082 изгледи

дерефериране на празен указател
Възможен дубликат: Дереференциране на празни указатели Имам извикване на функция по този начин: void foo(void *context) //function prototype .. .. .. main() { . . foo(&(ptr->block)); //where ptr->block is of type...
269 изгледи
schedule 19.10.2022

Не може да преобразува void * в байтов масив
РЕДАКТИРАНЕ: Опростих кодовете си, за да покажа по-добре ситуацията. ЗАДАЧА: Имам работеща сокет сървър/клиентска програма, написана на C. Искам да я подобря, като използвам Ada-C интерфейс. Функция C, която получава въведеното от потребителя,...
1648 изгледи
schedule 02.12.2022

Разрешено ли е кастинг от TYPE* ​​към unsigned char*?
C99 -- конкретно раздел 6.2.6.1, параграф 4 -- гласи, че копирането на представяне на обект в масив от неподписан char е разрешено: struct { int foo; double bar; } baz; unsigned char bytes[sizeof baz]; // Do things with the baz...
673 изгледи
schedule 09.11.2023

Как да предам zmq контекст (void *) правилно?
Използвам родната C библиотека на zmq, за да напиша моето приложение (все пак самото приложение е написано на C++). Версията на ZMQ е 4.04. Проблемът, който имам, е, че имам фабричен клас, който предоставя единичен достъп до контекста на zmq, който...
861 изгледи
schedule 10.11.2023

Как да присвоите стойности на празен масив
След като открих, че в C няма шаблони, реших да използвам масив от указатели в стремежа си да създам сам динамичен масив. Реших, че този отговор може да е добро начало, но той разглежда само целочислен масив, който не отговаря напълно на нуждите...
2698 изгледи
schedule 02.03.2024

Съединение срещу static_cast(void*)
Пиша код и досега използвах структури като тази: struct s{ enum Types { zero = 0, one, two }; unsigned int type; void* data; } Имах нужда от някаква обща структура за съхраняване на данни от различни класове и исках да я използвам в...
1520 изгледи
schedule 15.05.2024

C++ използва (void*) за прехвърляне към int за сравнение?
(Опитвам се) да напиша малко (работещ) C++ в проект ObjC :-) Библиотеката C++ (Box2D) ми предоставя клас b2Fixture, който има свойство „потребителски данни“ за програмистите, за да съхраняват всичко, което е подходящо за тях. В моя случай той...
3507 изгледи
schedule 19.05.2024