问题标签 [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.
c++ - 在 C++ 中从 void* 转换为对象数组
我在让这个工作时遇到问题,
而且我不能使用泛型类型来满足我的需要。
提前致谢。
c++ - “typedef void (*Something)()”是什么意思
我试图理解这意味着什么,我正在查看的代码有
在.h
在.C
有时当我这样做时
我得到分段错误,这可能是因为内存被释放了,当它被释放时我该如何调试?
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++ 都拒绝它
c++ - C->C++ 自动将 void 指针转换为 #define 中的 C++ 中的类型指针,以防未给出类型(C 风格)[MSVS]
你好!
我使用了以下C宏,但在C++中它不能自动void*
转换为type*
.
我知道,我可以这样做:
但我不想重写大部分代码,在哪里MALLOC_SAFE
使用。
有没有办法在不给宏指定类型的情况下做到这一点?也许一些MSVC 2005 #pragma
// __declspec
other ?
ps:我不能使用 C 编译器,因为我的代码是大型项目的一部分(数百个模块之一)。现在它在 C++ 上。我知道,我可以单独构建我的代码。但这是旧代码,我只想快速移植它。
问题是关于 void* cast ;) 如果不可能,我将用 MACRO_SAFE_CPP 替换 MACRO_SAFE
谢谢你!
c++ - 参数类型 void*& 是什么意思,它的用途是什么?
我正在查看一个用 C++ 编写的 API,但我对以下参数类型的含义感到困惑:
void*& data
这是否意味着用户会传入对 void 指针的引用?如果这是真的,那有什么意义呢?我的意思是 void* 已经间接了,那么你为什么还要重新重定向它呢?
c - C - 链表和指针问题
嘿,
我是 C 的初学者,并尝试实现我自己的链表实现,基本上看起来像这样:
所以简而言之,我想要一个可以保存任意类型的链表——我听说,这在 C 中可以通过使用 void 指针来实现。现在问题出现了,当我想使用该实现时,例如将结构作为值:
最后一个 printf 调用只打印像 -1077927056 这样的值,它看起来像一个内存地址。所以这可能是指针的问题。在过去几天在网上搜索了一个类似的问题后(我没有运气),我试图抛弃自己的逻辑并测试各种随机 *& 组合。原来,这也是一条死胡同。:(
对于更有经验的 C 程序员来说,这可能很简单,但我就是找不到答案。请帮忙 :D
ios - 确定 Core Audio AudioBuffer 中的帧数
我正在尝试访问 iPhone/iPad 上音频文件的原始数据。我有以下代码,这是我需要的基本路径。但是,一旦有了 AudioBuffer,我就很难过。
本质上,我不知道如何判断每个缓冲区包含多少帧,因此我无法可靠地从中提取数据。我是处理原始音频数据的新手,因此我愿意接受有关如何最好地读取 AudioBuffer 结构的 mData 属性的任何建议。过去我也没有对 void 指针做太多事情,所以在这种情况下提供帮助也会很棒!
c++ - 什么是空指针,什么是空指针?
所以我正在处理一些面试问题,我遇到了一个关于 void 和 null pointers的问题,它声称:
没有返回类型的指针称为空指针。它可以是任何类型的数据类型。
这让我彻底困惑!根据这个问题,似乎 void 和 null 可以互换使用,我不认为这是正确的。我假设 void 是一个返回类型,而 null 是一个值。但我只是一个代码新手,我不确定我是对的。
请就什么是空指针和空指针表达您的看法。我不是在寻找无效和无效之间的区别。
c - 在C中为非空void *指针赋值的正确方法应该是什么?
我有以下代码:
问题是,这段代码抛出了以下警告:警告:赋值目标不是真正的左值;这将是未来的一个硬错误
如果没有演员表,我会收到另一个警告,说我正在尝试取消引用 void 指针......
由于警告被视为错误,我不能使用此代码 - 但我真的不能使用除 void* 之外的任何其他指针类型作为参数。我缺少一个优雅的解决方案吗?
有什么办法可以使这项工作?