nullptr相关内容
我正在使用 g++ 4.4.1 并想使用 nullptr,但我无法找到需要包含的头文件.它似乎也不是关键字,因为我使用它的尝试被拒绝为 错误:'nullptr' 未在此范围内声明 解决方案 GCC 4.4.1 不支持 nullptr. 在 GCC 4.6.0 中添加了对 nullptr 的支持:http://gcc.gnu.org/gcc-4.6/changes.html 改进了
..
我有以下代码片段将 nullptr 分配给 bool 类型. #include 主函数(){布尔 b = nullptr;std::cout
..
如果我写 int 零 = 0;void *p1 = (void *)0;void *p2 = (void *)(int)0;void *p3 = (void *)(0/*no-op,但是会影响下一个零吗?*/, 0);void *p4 = (void *)0;//作为参考,这是一个指向零地址的指针无效 *p5 = 0;//作为参考,这是一个空指针无效 *p6 = NULL;//作为参考,这是一个
..
这段代码概念上对三个指针做了同样的事情(安全指针初始化): int* p1 = nullptr;int* p2 = NULL;int* p3 = 0; 那么,分配指针 nullptr 与分配值 NULL 或 0 相比有什么优势? 解决方案 在那段代码中,似乎没有什么优势.但请考虑以下重载函数: void f(char const *ptr);void f(int v);f(NULL)
..
我知道在 C++ 中 0x 或 NULL 在基于指针的应用程序中被 nullptr 替换.我只是想知道他们进行此替换的确切原因? 在什么情况下使用 nullptr 而不是 NULL 在处理指针时有益? 解决方案 nullptr 具有类型 std::nullptr_t.它可以隐式转换为任何指针类型.因此,它将匹配重载解析中的 std::nullptr_t 或指针类型,但不匹配其他类型,
..
我们现在拥有具有许多新功能的 C++11.一个有趣且令人困惑的(至少对我而言)是新的 nullptr. 好吧,不再需要讨厌的宏 NULL. int* x = nullptr;我的类* obj = nullptr; 仍然,我不明白 nullptr 是如何工作的.例如,维基百科文章说: C++11 通过引入一个新的关键字来纠正这个问题,作为一个特殊的空指针常量:nullptr.它是 t
..
所以我正在尝试创建一个缓冲区类.这个缓冲区类包含一个大小为 384*4 的巨大缓冲区.计划是针对接收到的每个 UDP 数据报大小(384),调用缓冲区类并返回一个指向数据报应写入位置的指针. 还有另一个侦听器指针,RtAudio 播放将从中进行 memcpy.[听力部分尚不完全相关,因为我仍然有写入缓冲区的问题] 当我尝试调用 server_->getPointer() (如下所示)
..
我正在尝试使用“又一个 PCnt 库" 用于在我的 Arduino mega 2560 上启用引脚更改中断.在 Arduino IDE 中,代码在 Windows 上编译良好,但在 mac 上失败.它给出了一个错误代码说明: nullptr 未在此范围内声明attachInterrupt(pin, (callback)func, nullptr, mode, trigger_now);^ 我
..
C++ 中的 nullptr 和 C# 中的 null 一样吗? 似乎没有人在 Google 或 Stackflow 上问过这个问题. 解决方案 一般来说都是的,都将空值赋给指针类型 C#:类、接口、委托或指针类型 C++:指针类型或成员指针类型 它不会转换为任何一种语言的数值.一个区别是在 C++ 中 nullptr 可以转换为 bool.这在 C# 中并非如此
..
我们的项目使用C ++ 11/14,我们想使用 nullptr 代替带有指针的 0 或 NULL ,即使在允许 0 (作为整数文字). 我有以下代码: int main(){int * ptr1 = nullptr;//#1int * ptr2 = 0;//#2} 如果我使用GCC(5.3.0)和标志 -Wzero-as-null-pointer-constant 进行编译,则会在#
..
摘要: nullptr 转换为 bool ,而 bool 转换为 int ,为什么不 nullptr 转换为 int 吗? 此代码还可以: void f(bool);f(nullptr);//好的,nullptr转换为bool 这没关系: bool b;int i(b);//好的,布尔值转换为int 那为什么不行呢? void f(int);f(nullptr);//为什
..
这个问题基于我发现的用于监视可能的内存泄漏的代码,因此它包含一些您可能不希望在常规程序中看到的代码,例如排序指针. 但是,我看到一个指针被设置为 nullptr ,然后将该指针与一个最大地址进行比较.C ++标准是否保证 nullptr 总是小于 operator
..
因此,我正在尝试创建一个缓冲区类.该缓冲区类包含一个大小为384 * 4的巨大缓冲区.该计划是针对每个收到的UDP数据报,大小为384,调用缓冲区类并返回一个指向应将数据报写入位置的指针. 将有另一个侦听器指针,RtAudio播放将从该侦听器指向. [聆听部分还不完全相关,因为我在写入缓冲区时仍然遇到问题] 当我尝试调用server _-> getPointer()(如下所示)时,将引
..
我正在尝试使用"又一个PCInt库"以在我的Arduino mega 2560上启用针脚更改中断.在Arduino IDE中,该代码在Windows上可以正常编译,但在mac上失败.它给出了一个错误代码,说明: nullptr在此范围内未声明attachInterrupt(pin,(callback)func,nullptr,mode,trigger_now);^ 如何在arduino I
..
我是C ++的新手.我有一个名为MyDate的类.另外,我有一个名为Calendar的类,该类具有指向MyDate对象的指针数组的成员类型.我应该如何在Calendar的构造函数中将数组的成员声明和初始化为nullptr? 解决方案 智能指针默认初始化为nullptr: class Calendar { std::array, 42
..
试图尽可能简化情况.所以我有一堂课: class C { int * field; public: C() : field(nullptr) {} void init(int* f) { field = f; } int getI1() { return *field; } int getI2() { return *field; } }; 生成
..
我有int* foo[SIZE],我想在其中搜索第一个指向NULL的元素. 但是当我这样做时: std::find(foo, foo + SIZE, NULL) 我得到了错误: 错误C2446:'==':没有从'const int'到'int *' 的转换 我应该只使用static_cast(NULL)而不是NULL吗? C ++ 11通过 nullp
..
考虑以下程序 #include #include struct A { }; struct C { }; int main() { C *pc = nullptr; A *pa1 = dynamic_cast( pc ); std::cout
..
因为在C和C++中都取消引用nullptr(NULL)是未定义的行为,所以我想知道如果ptr为nullptr(). 如果这也是未定义的行为,则链接的答案中的 OFFSETOF 宏如何工作? 我一直认为ptr->field是(*ptr).field 的简写 我认为我的问题的答案在C和C ++中是相似的. 解决方案 TL; DR &(*(char*)0)定义明确. C +
..
自C ++ 11起,标准允许宏NULL可以是值为零的整数文字或类型为std::nullptr_t的prvalue. 任何标准库供应商决定将其NULL的定义从整数更改为nullptr,很可能会导致依赖C ++ 11之前代码的客户端损坏. 是否有任何主要的实现方式(例如,GCC,Clang,MSVC)将NULL定义为nullptr??或者,尽管有可能,没有人这样做吗? 解决方案 l
..