问题标签 [void-pointers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
14569 浏览

c - C中结构中“取消引用`void *'指针”警告的解决方案?

我试图创建一个伪超结构来打印结构数组。我的基本结构如下。

我创建了以下结构来打印上述结构的数组。在编译下面的代码片段时,我遇到了取消引用 void 指针错误。

我的意图是有一个通用的功能来打印所有的数组。请告诉我正确的使用方法。

提前感谢帮助。

编辑:参数名称从 cmncnt 改为 cmncnt。抱歉,这是拼写错误。

谢谢, 马修 Liju

0 投票
6 回答
15047 浏览

c - 在 C 中使用 void* 指针的缺点

在 C中使用有很多缺点void *(内存相关、类型相关、效率方面......)。尽管它们提供了灵活性,但我们还是经常使用它们。

列出使用的缺点/缺点void *(以及 C 中的首选解决方案 - 如果可能)。

编辑: 请通过以下链接: http ://attractivechaos.wordpress.com/2008/10/02/using-void-in-generic-c-programming-may-be-inefficient/

0 投票
6 回答
8086 浏览

c++ - C++ 中指向 void 的指针?

我正在阅读Ogre3D实现中的一些代码,但我无法理解void *类型变量的含义。voidC++中的指针是什么意思?

0 投票
10 回答
21881 浏览

c++ - 为什么不可能有对void的引用?

为什么不可能引用 void?我在 C++ 标准中找到的唯一内容是这一行,位于8.3.2.1

指定类型“对cv void的引用”的声明符格式不正确。

为什么会这样?为什么我不能编写一个接受 a 的“通用”函数void&

为了清楚起见,我没有想到使用 void 引用可能比使用模板更好的有用应用程序,但我只是对禁止这种构造的理由感到好奇。


为了澄清一点,我知道“按原样”使用对 void 的引用与取消引用指向 void 的指针一样毫无意义。但是,我可以将它转换为对某种类型的引用以便使用它,不是吗?事实上,我不明白为什么下面的代码片段可以工作......

...虽然这个不能:

0 投票
6 回答
1278 浏览

c - ANSI C89/ISO C90 中空指针的界限

有没有办法在 ANSI C89/ISO C90 中可移植地确定 void-pointer 值的上限和下限?(我目前没有标准的副本(我家里有一个)。当然,如果保证 void-pointer 值是无符号的,这个任务是微不足道的(通过 sizeof(void *));但是,我不能回想一下这是否得到保证。我可以想到一些非常低效的算法(递增直到溢出等),但我想知道是否有人有相对便宜(就时间复杂性而言)和可移植的方法计算这些界限。)

- 编辑 -

另外:是否有一种可移植的方法来确定指针值的有效性?

原因:这是在与一位同事的讨论中提出的,这让我很困惑。我不知道他在做什么,但我只是想知道,因为我有兴趣!:-)

0 投票
7 回答
6929 浏览

c - 在 C 中返回一个指向常量对象的 void 指针

我正在编写一个访问函数,它返回一个指向内部缓冲区的指针,我想向我的函数的用户提示他们不应该更新指向的对象。一个非常人为的例子是:

是的,我知道这看起来很古怪。

我要防止的是:

我知道我不能完全阻止它,但我至少希望编译器警告提示用户他们不应该这样做。如果他们投了我的指针,那就是他们的问题。是否有 const 和 void 和 * 的某种组合可以做到这一点?我试过类似的东西:

但它似乎消除了指针的无效性,所以调用者必须这样做:

或者

并且不能这样做:

我终于来了:

如果用户这样做:

编译器(至少是 GCC)确实抱怨丢弃了限定符。

0 投票
16 回答
211307 浏览

c - C编程中void指针的概念

在 C 编程语言中是否可以在不进行类型转换的情况下取消引用 void 指针?

另外,有什么方法可以泛化一个可以接收指针并将其存储在 void 指针中的函数,并且通过使用该 void 指针,我们可以制作一个泛化函数吗?

例如:

我想在不使用 if-else 语句的情况下使这个函数通用 - 这可能吗?

此外,如果有很好的 Internet 文章解释了 void 指针的概念,那么如果您能提供 URL 将是有益的。

此外,是否可以使用 void 指针进行指针运算?

0 投票
2 回答
995 浏览

python - 如何在 PyObjC 选择器中表示 void 指针?

我想为我正在设计的应用程序使用 NSOpenPanel。这是我到目前为止所拥有的:

我关心的主要两行是:

第三个参数应该是一个空指针。由于我不打算使用该数据,因此我宁愿将其留空。我尝试过制作签名'v:@iv'并尝试使用objc.NULL和 python'sNone以及所有这些东西的几乎所有组合。处理这个问题的最佳方法是什么?

0 投票
6 回答
8509 浏览

c++ - 根据数据转换 void 指针 (C++)

基本上我想要做的是,根据某些变量,将 void 指针转换为不同的数据类型。例如('cast' 变量只是为了表达我的观点):

C++ 中是否有任何东西可以做这样的事情(因为你实际上不能将变量分配为只是 (uint32*) 或类似的东西)?如果不清楚,我深表歉意,任何帮助将不胜感激。

0 投票
13 回答
66598 浏览

c++ - 删除空指针是否安全?

假设我有以下代码:

这安全吗?还是必须在删除之前强制转换ptrchar*