问题标签 [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 投票
2 回答
10535 浏览

c++ - 在 C++ 中从 void* 转换为对象数组

我在让这个工作时遇到问题,

而且我不能使用泛型类型来满足我的需要。

提前致谢。

0 投票
5 回答
55726 浏览

c++ - “typedef void (*Something)()”是什么意思

我试图理解这意味着什么,我正在查看的代码有

.h

.C

有时当我这样做时

我得到分段错误,这可能是因为内存被释放了,当它被释放时我该如何调试?

0 投票
6 回答
19585 浏览

c - 我可以在 C 中对 void * 指针进行算术运算吗?

这是有效的吗

如果是的话 p 现在指向什么?我有(第三方)代码可以做到这一点(并且可以干净地编译),我的猜测是 void * 被视为 char *。我信任的 K&R 对这个话题保持沉默(ish)

编辑:我的小测试应用程序在 gcc 4.1.1 上运行良好,并将 void * 视为 char *。但是 g++ barfs

我知道如何正确地做到这一点。我需要知道我是否必须清理这个代码库才能找到它完成的所有地方。

顺便说一句 gcc -pedantic 抛出警告

概括:

C规范是模棱两可的。它表示在表示和用作函数参数方面 void* =char*。但它对指针算术保持沉默。

  • gcc (4) 允许它并将其视为 char *
  • g++ 拒绝它
  • gcc -pedantic 警告它
  • vs2010 c 和 c++ 都拒绝它
0 投票
4 回答
5895 浏览

c++ - C->C++ 自动将 void 指针转换为 #define 中的 C++ 中的类型指针,以防未给出类型(C 风格)[MSVS]

你好!

我使用了以下C宏,但在C++中它不能自动void*转换为type*.

我知道,我可以这样做:

但我不想重写大部分代码,在哪里MALLOC_SAFE使用。

有没有办法在不给宏指定类型的情况下做到这一点?也许一些MSVC 2005 #pragma // __declspecother ?

ps:我不能使用 C 编译器,因为我的代码是大型项目的一部分(数百个模块之一)。现在它在 C++ 上。我知道,我可以单独构建我的代码。但这是旧代码,我只想快速移植它。

问题是关于 void* cast ;) 如果不可能,我将用 MACRO_SAFE_CPP 替换 MACRO_SAFE

谢谢你!

0 投票
6 回答
35952 浏览

c++ - 来自“void *”的dynamic_cast

据此void*没有 RTTI 信息,因此铸造 from是void*不合法的并且是有意义的。

如果我没记错的话,dynamic_castfromvoid*正在研究 gcc。

你能澄清一下这个问题吗?

0 投票
3 回答
11011 浏览

c++ - 参数类型 void*& 是什么意思,它的用途是什么?

我正在查看一个用 C++ 编写的 API,但我对以下参数类型的含义感到困惑:

void*& data

这是否意味着用户会传入对 void 指针的引用?如果这是真的,那有什么意义呢?我的意思是 void* 已经间接了,那么你为什么还要重新重定向它呢?

0 投票
1 回答
1894 浏览

c - C - 链表和指针问题

嘿,
我是 C 的初学者,并尝试实现我自己的链表实现,基本上看起来像这样:

所以简而言之,我想要一个可以保存任意类型的链表——我听说,这在 C 中可以通过使用 void 指针来实现。现在问题出现了,当我想使用该实现时,例如将结构作为值:

最后一个 printf 调用只打印像 -1077927056 这样的值,它看起来像一个内存地址。所以这可能是指针的问题。在过去几天在网上搜索了一个类似的问题后(​​我没有运气),我试图抛弃自己的逻辑并测试各种随机 *& 组合。原来,这也是一条死胡同。:(

对于更有经验的 C 程序员来说,这可能很简单,但我就是找不到答案。请帮忙 :D

0 投票
1 回答
6666 浏览

ios - 确定 Core Audio AudioBuffer 中的帧数

我正在尝试访问 iPhone/iPad 上音频文件的原始数据。我有以下代码,这是我需要的基本路径。但是,一旦有了 AudioBuffer,我就很难过。

本质上,我不知道如何判断每个缓冲区包含多少帧,因此我无法可靠地从中提取数据。我是处理原始音频数据的新手,因此我愿意接受有关如何最好地读取 AudioBuffer 结构的 mData 属性的任何建议。过去我也没有对 void 指针做太多事情,所以在这种情况下提供帮助也会很棒!

0 投票
9 回答
32379 浏览

c++ - 什么是空指针,什么是空指针?

所以我正在处理一些面试问题,我遇到了一个关于 void 和 null pointers的问题,它声称:

没有返回类型的指针称为空指针。它可以是任何类型的数据类型。

这让我彻底困惑!根据这个问题,似乎 void 和 null 可以互换使用,我不认为这是正确的。我假设 void 是一个返回类型,而 null 是一个值。但我只是一个代码新手,我不确定我是对的。

请就什么是空指针和空指针表达您的看法。我不是在寻找无效和无效之间的区别。

0 投票
4 回答
398 浏览

c - 在C中为非空void *指针赋值的正确方法应该是什么?

我有以下代码:

问题是,这段代码抛出了以下警告:警告:赋值目标不是真正的左值;这将是未来的一个硬错误

如果没有演员表,我会收到另一个警告,说我正在尝试取消引用 void 指针......

由于警告被视为错误,我不能使用此代码 - 但我真的不能使用除 void* 之外的任何其他指针类型作为参数。我缺少一个优雅的解决方案吗?

有什么办法可以使这项工作?