首页 > TAG信息列表 > void-pointers

c – static_cast’d指针值

在当前的标准草案(和C 17)中,this是关于static_casting a void *的: A prvalue of type “pointer to cv1 void” can be converted to a prvalue of type “pointer to cv2 T”, where T is an object type and cv2 is the same cv-qualification as, or greater cv-qualificatio

使用python ctypes和libc将void指针写入二进制文件

我使用python ctypes和libc与供应商提供的DLL文件进行交互. DLL文件的目的是从相机获取图像. 图像采集似乎没有错误地运行;我遇到的问题是访问数据. 图像采集功能将ctypes.c_void_p作为图像数据的参数. 简化如下: """ typedef struct AvailableData { void* initial_readout;

c – 为什么删除void *是UB而不是编译错误?

为什么通过void *删除对象是未定义的行为,而不是编译错误? void foo(void* p) { delete p; } 这段代码编译并生成代码,虽然gcc和clang上有警告(令人惊讶的是,ICC没有发出警告): :2:5: warning: cannot delete expression with pointer-to-‘void’ type ‘void *’ [-Wdel

c – 指向动态分配的类的void指针

我正在尝试将void *传递给函数,然后在该函数内部使指针指向动态创建的对象.这是我到目前为止,但它似乎没有工作: 主要: int main() { void* objPtr; setPtr(objPtr); } setPtr: void setPtr(void*& objPtr) { objPtr = new Obj1; (*objPtr).member1 = 10; //error: expre

c – 模板,会很感激解释

我正在读一本书,其中这个人制作了一个链表 他创建了这样一个类 template < class extra_info = void*> class NavGraphNode : public GraphNode { protected: //the node's position Vector2D m_vPosition; extra_info m_ExtraInfo; public: /*INTERFACE OMITTED */ }; 他解释说

C:铸造成无效*并返回

* —编辑 – 现在整个过程* 当我在最后调试它时,“get”和“value”具有不同的值!可能,我转换为void *并以错误的方式返回User? #include <db_cxx.h> #include <stdio.h> struct User{ User(){} int name; int town; User(int a){}; inline int get_index(int a){ return town;

c – 可以将shared_ptr向上转换为shared_ptr导致未定义的行为吗?

共享指针非常聪明.他们记住了最初构造的类型,以便正确删除它们.以此为例: struct A { virtual void test() = 0; }; struct B : A { void test() override {} }; void someFunc() { std::shared_ptr<A> ptr1; ptr1 = std::make_shared<B>(); // Here at the end of

类型转换整数为void *

参见英文答案 > what does it mean to convert int to void* or vice versa?                                    6个 #include <stdio.h> void pass(void* ); int main() { int x; x = 10; pass((void*)x); return 0; } voi